69# pragma warning(disable : 4251)
85 static constexpr const char *path{
"" };
88 static constexpr const char *name{
"Settings" };
91 static constexpr const char *description{
92 R
"description(Settings used when capturing with a Zivid camera.)description"
95 static constexpr size_t version{ 24 };
105 static constexpr std::array<uint8_t, 3> binaryId{
's',
'e',
't' };
119 static constexpr const char *path{
"Acquisition" };
122 static constexpr const char *name{
"Acquisition" };
125 static constexpr const char *description{ R
"description(Settings for a single acquisition.)description" };
139 static constexpr const char *path{
"Acquisition/Aperture" };
142 static constexpr const char *name{
"Aperture" };
145 static constexpr const char *description{
146 R
"description(Aperture setting for the camera. Specified as an f-number (the ratio of lens focal length to
147the effective aperture diameter).
157 return { 1.4, 32.0 };
165 : m_opt{ verifyValue(value) }
186 return m_opt == other.m_opt;
192 return m_opt != other.m_opt;
198 return m_opt < other.m_opt;
204 return m_opt > other.m_opt;
210 return m_opt <= other.m_opt;
216 return m_opt >= other.m_opt;
226 void setFromString(
const std::string &value);
228 constexpr ValueType
static verifyValue(
const ValueType &value)
230 return validRange().isInRange(value)
232 :
throw std::out_of_range{
"Aperture{ " + std::to_string(value) +
" } is not in range ["
233 + std::to_string(validRange().min()) +
", "
234 + std::to_string(validRange().max()) +
"]" };
237 Zivid::DataModel::Detail::Optional<double> m_opt;
239 friend struct DataModel::Detail::Befriend<
Aperture>;
262 static constexpr const char *path{
"Acquisition/Brightness" };
265 static constexpr const char *name{
"Brightness" };
268 static constexpr const char *description{
269 R
"description(Brightness controls the light output from the projector.
271Brightness above 1.0 may be needed when the distance between the camera and the scene is large,
272or in case of high levels of ambient lighting.
274When brightness is above 1.0 the duty cycle of the camera (the percentage of time the camera
275can capture) will be reduced. The duty cycle in boost mode is 50%. The duty cycle is calculated
276over a 10 second period. This limitation is enforced automatically by the camera. Calling capture
277when the duty cycle limit has been reached will cause the camera to first wait (sleep) for a
278duration of time to cool down, before capture will start.
296 : m_opt{ verifyValue(value) }
317 return m_opt == other.m_opt;
323 return m_opt != other.m_opt;
329 return m_opt < other.m_opt;
335 return m_opt > other.m_opt;
341 return m_opt <= other.m_opt;
347 return m_opt >= other.m_opt;
357 void setFromString(
const std::string &value);
359 constexpr ValueType
static verifyValue(
const ValueType &value)
361 return validRange().isInRange(value)
363 :
throw std::out_of_range{
"Brightness{ " + std::to_string(value)
364 +
" } is not in range [" + std::to_string(validRange().min())
365 +
", " + std::to_string(validRange().max()) +
"]" };
368 Zivid::DataModel::Detail::Optional<double> m_opt;
370 friend struct DataModel::Detail::Befriend<
Brightness>;
383 static constexpr const char *path{
"Acquisition/ExposureTime" };
386 static constexpr const char *name{
"ExposureTime" };
389 static constexpr const char *description{
390 R
"description(Exposure time for each single image in the measurement. Affects frame rate.)description"
399 return { std::chrono::microseconds{ 1677 }, std::chrono::microseconds{ 100000 } };
407 : m_opt{ verifyValue(value) }
414 std::chrono::microseconds
value()
const;
428 return m_opt == other.m_opt;
434 return m_opt != other.m_opt;
440 return m_opt < other.m_opt;
446 return m_opt > other.m_opt;
452 return m_opt <= other.m_opt;
458 return m_opt >= other.m_opt;
468 void setFromString(
const std::string &value);
470 constexpr ValueType
static verifyValue(
const ValueType &value)
472 return validRange().isInRange(value)
474 :
throw std::out_of_range{
"ExposureTime{ " + std::to_string(value.count())
475 +
" } is not in range ["
476 + std::to_string(validRange().min().count()) +
", "
477 + std::to_string(validRange().max().count()) +
"]" };
480 Zivid::DataModel::Detail::Optional<std::chrono::microseconds> m_opt;
482 friend struct DataModel::Detail::Befriend<
ExposureTime>;
495 static constexpr const char *path{
"Acquisition/Gain" };
498 static constexpr const char *name{
"Gain" };
501 static constexpr const char *description{ R
"description(Analog gain in the camera.)description" };
516 explicit constexpr Gain(
double value)
517 : m_opt{ verifyValue(value) }
538 return m_opt == other.m_opt;
544 return m_opt != other.m_opt;
550 return m_opt < other.m_opt;
556 return m_opt > other.m_opt;
562 return m_opt <= other.m_opt;
568 return m_opt >= other.m_opt;
578 void setFromString(
const std::string &value);
580 constexpr ValueType
static verifyValue(
const ValueType &value)
582 return validRange().isInRange(value)
584 :
throw std::out_of_range{
"Gain{ " + std::to_string(value) +
" } is not in range ["
585 + std::to_string(validRange().min()) +
", "
586 + std::to_string(validRange().max()) +
"]" };
589 Zivid::DataModel::Detail::Optional<double> m_opt;
591 friend struct DataModel::Detail::Befriend<
Gain>;
620 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
621 typename std::enable_if<
622 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
626 template<typename... Args>
630 using namespace Zivid::Detail::TypeTraits;
633 AllArgsDecayedAreUnique<Args...>::value,
634 "Found duplicate types among the arguments passed to Acquisition(...). "
635 "Types should be listed at most once.");
637 set(std::forward<Args>(args)...);
654 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
656 template<typename... Args>
660 using namespace Zivid::Detail::TypeTraits;
662 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
664 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
667 AllArgsDecayedAreUnique<Args...>::value,
668 "Found duplicate types among the arguments passed to set(...). "
669 "Types should be listed at most once.");
671 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
689 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
691 template<typename... Args>
695 using namespace Zivid::Detail::TypeTraits;
697 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
699 AllArgsAreDescendantNodes::value,
700 "All arguments passed to copyWith(...) must be descendant nodes.");
703 AllArgsDecayedAreUnique<Args...>::value,
704 "Found duplicate types among the arguments passed to copyWith(...). "
705 "Types should be listed at most once.");
708 copy.
set(std::forward<Args>(args)...);
746 m_brightness = value;
753 return m_exposureTime;
759 return m_exposureTime;
765 m_exposureTime = value;
790 typename std::enable_if<std::is_same<T, Settings::Acquisition::Aperture>::value,
int>::type = 0>
798 typename std::enable_if<std::is_same<T, Settings::Acquisition::Brightness>::value,
int>::type = 0>
806 typename std::enable_if<std::is_same<T, Settings::Acquisition::ExposureTime>::value,
int>::type = 0>
809 return m_exposureTime;
814 typename std::enable_if<std::is_same<T, Settings::Acquisition::Gain>::value,
int>::type = 0>
820 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
826 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
832 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
835 return m_exposureTime;
838 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
880 void setFromString(
const std::string &value);
882 void setFromString(
const std::string &fullPath,
const std::string &value);
884 std::string getString(
const std::string &fullPath)
const;
887 Brightness m_brightness;
888 ExposureTime m_exposureTime;
891 friend struct DataModel::Detail::Befriend<
Acquisition>;
904 static constexpr const char *path{
"Acquisitions" };
907 static constexpr const char *name{
"Acquisitions" };
910 static constexpr const char *description{ R
"description(List of Acquisition objects.)description" };
918 return { 0, std::numeric_limits<ValueType::size_type>::max() };
926 : m_value{ std::move(value) }
930 explicit Acquisitions(std::initializer_list<Settings::Acquisition> value)
935 const std::vector<Settings::Acquisition> &
value()
const;
941 std::size_t
size() const noexcept;
944 bool isEmpty() const noexcept;
951 template<typename... Args>
952 void emplaceBack(Args &&...args)
954 m_value.emplace_back(std::forward<Args>(args)...);
989 for(
auto &child : m_value)
999 for(
const auto &child : m_value)
1006 using Iterator = std::vector<Settings::Acquisition>::iterator;
1032 return m_value == other.m_value;
1038 return m_value != other.m_value;
1048 void setFromString(
const std::string &value);
1050 std::vector<Settings::Acquisition> m_value{};
1052 friend struct DataModel::Detail::Befriend<
Acquisitions>;
1071 static constexpr const char *path{
"Diagnostics" };
1074 static constexpr const char *name{
"Diagnostics" };
1077 static constexpr const char *description{
1078 R
"description(When Diagnostics is enabled, additional diagnostic data is recorded during capture and included when saving
1079the frame to a .zdf file. This enables Zivid's Customer Success team to provide better assistance and more
1080thorough troubleshooting.
1082Enabling Diagnostics increases the capture time and the RAM usage. It will also increase the size of the
1083.zdf file. It is recommended to enable Diagnostics only when reporting issues to Zivid's support team.
1097 static constexpr const char *path{
"Diagnostics/Enabled" };
1100 static constexpr const char *name{
"Enabled" };
1103 static constexpr const char *description{ R
"description(Enable or disable diagnostics.)description" };
1113 return {
false,
true };
1142 return m_opt == other.m_opt;
1148 return m_opt != other.m_opt;
1158 void setFromString(
const std::string &value);
1160 Zivid::DataModel::Detail::Optional<bool> m_opt;
1162 friend struct DataModel::Detail::Befriend<
Enabled>;
1184 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1185 typename std::enable_if<
1186 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
1190 template<typename... Args>
1194 using namespace Zivid::Detail::TypeTraits;
1197 AllArgsDecayedAreUnique<Args...>::value,
1198 "Found duplicate types among the arguments passed to Diagnostics(...). "
1199 "Types should be listed at most once.");
1201 set(std::forward<Args>(args)...);
1215 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1217 template<typename... Args>
1221 using namespace Zivid::Detail::TypeTraits;
1223 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1225 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1228 AllArgsDecayedAreUnique<Args...>::value,
1229 "Found duplicate types among the arguments passed to set(...). "
1230 "Types should be listed at most once.");
1232 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1247 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1249 template<typename... Args>
1253 using namespace Zivid::Detail::TypeTraits;
1255 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1257 AllArgsAreDescendantNodes::value,
1258 "All arguments passed to copyWith(...) must be descendant nodes.");
1261 AllArgsDecayedAreUnique<Args...>::value,
1262 "Found duplicate types among the arguments passed to copyWith(...). "
1263 "Types should be listed at most once.");
1266 copy.
set(std::forward<Args>(args)...);
1291 typename std::enable_if<std::is_same<T, Settings::Diagnostics::Enabled>::value,
int>::type = 0>
1297 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1304 template<
typename F>
1311 template<
typename F>
1333 void setFromString(
const std::string &value);
1335 void setFromString(
const std::string &fullPath,
const std::string &value);
1337 std::string getString(
const std::string &fullPath)
const;
1341 friend struct DataModel::Detail::Befriend<
Diagnostics>;
1370 static constexpr const char *path{
"Engine" };
1373 static constexpr const char *name{
"Engine" };
1376 static constexpr const char *description{ R
"description(Set the Zivid Vision Engine to use.
1378The Phase Engine is the fastest choice in terms of both acquisition time and total capture
1379time, and is a good compromise between quality and speed. The Phase Engine is recommended for
1380objects that are diffuse, opaque, and slightly specular, and is suitable for applications in
1381logistics such as parcel induction.
1383The Stripe Engine is built for exceptional point cloud quality in scenes with highly specular
1384reflective objects. This makes the engine suitable for applications such as factory automation,
1385manufacturing, and bin picking. Additional acquisition and processing time are required for
1388The Omni Engine is built for exceptional point cloud quality on all scenes, including scenes
1389with extremely specular reflective objects, as well as transparent objects. This makes the Omni
1390Engine suitable for applications such as piece picking. Same as for the Stripe Engine, it trades
1391off speed for quality. The Omni Engine is only available for Zivid 2+.
1408 return { ValueType::phase, ValueType::stripe, ValueType::omni };
1416 : m_opt{ verifyValue(value) }
1443 return m_opt == other.m_opt;
1449 return m_opt != other.m_opt;
1459 void setFromString(
const std::string &value);
1461 constexpr ValueType
static verifyValue(
const ValueType &value)
1463 return value == ValueType::phase || value == ValueType::stripe || value == ValueType::omni
1465 :
throw std::invalid_argument{
1466 "Invalid value: Engine{ "
1467 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value)) +
" }"
1471 Zivid::DataModel::Detail::Optional<ValueType> m_opt;
1473 friend struct DataModel::Detail::Befriend<
Engine>;
1486 static constexpr const char *path{
"Processing" };
1489 static constexpr const char *name{
"Processing" };
1492 static constexpr const char *description{
1493 R
"description(Settings related to processing of a capture, including filters and color balance.)description"
1506 static constexpr const char *path{
"Processing/Color" };
1509 static constexpr const char *name{
"Color" };
1512 static constexpr const char *description{ R
"description(Color settings.)description" };
1524 static constexpr const char *path{
"Processing/Color/Balance" };
1527 static constexpr const char *name{
"Balance" };
1530 static constexpr const char *description{ R
"description(Color balance settings.)description" };
1542 static constexpr const char *path{
"Processing/Color/Balance/Blue" };
1545 static constexpr const char *name{
"Blue" };
1548 static constexpr const char *description{
1549 R
"description(Digital gain applied to blue channel.)description"
1558 return { 1.0, 8.0 };
1565 explicit constexpr Blue(
double value)
1566 : m_opt{ verifyValue(value) }
1587 return m_opt == other.m_opt;
1593 return m_opt != other.m_opt;
1599 return m_opt < other.m_opt;
1605 return m_opt > other.m_opt;
1611 return m_opt <= other.m_opt;
1617 return m_opt >= other.m_opt;
1627 void setFromString(
const std::string &value);
1629 constexpr ValueType
static verifyValue(
const ValueType &value)
1631 return validRange().isInRange(value)
1633 :
throw std::out_of_range{
"Blue{ " + std::to_string(value)
1634 +
" } is not in range ["
1635 + std::to_string(validRange().min()) +
", "
1636 + std::to_string(validRange().max()) +
"]" };
1639 Zivid::DataModel::Detail::Optional<double> m_opt;
1641 friend struct DataModel::Detail::Befriend<
Blue>;
1654 static constexpr const char *path{
"Processing/Color/Balance/Green" };
1657 static constexpr const char *name{
"Green" };
1660 static constexpr const char *description{
1661 R
"description(Digital gain applied to green channel.)description"
1670 return { 1.0, 8.0 };
1678 : m_opt{ verifyValue(value) }
1699 return m_opt == other.m_opt;
1705 return m_opt != other.m_opt;
1711 return m_opt < other.m_opt;
1717 return m_opt > other.m_opt;
1723 return m_opt <= other.m_opt;
1729 return m_opt >= other.m_opt;
1739 void setFromString(
const std::string &value);
1741 constexpr ValueType
static verifyValue(
const ValueType &value)
1743 return validRange().isInRange(value)
1745 :
throw std::out_of_range{
"Green{ " + std::to_string(value)
1746 +
" } is not in range ["
1747 + std::to_string(validRange().min()) +
", "
1748 + std::to_string(validRange().max()) +
"]" };
1751 Zivid::DataModel::Detail::Optional<double> m_opt;
1753 friend struct DataModel::Detail::Befriend<
Green>;
1766 static constexpr const char *path{
"Processing/Color/Balance/Red" };
1769 static constexpr const char *name{
"Red" };
1772 static constexpr const char *description{
1773 R
"description(Digital gain applied to red channel.)description"
1782 return { 1.0, 8.0 };
1789 explicit constexpr Red(
double value)
1790 : m_opt{ verifyValue(value) }
1811 return m_opt == other.m_opt;
1817 return m_opt != other.m_opt;
1823 return m_opt < other.m_opt;
1829 return m_opt > other.m_opt;
1835 return m_opt <= other.m_opt;
1841 return m_opt >= other.m_opt;
1851 void setFromString(
const std::string &value);
1853 constexpr ValueType
static verifyValue(
const ValueType &value)
1855 return validRange().isInRange(value)
1857 :
throw std::out_of_range{
"Red{ " + std::to_string(value)
1858 +
" } is not in range ["
1859 + std::to_string(validRange().min()) +
", "
1860 + std::to_string(validRange().max()) +
"]" };
1863 Zivid::DataModel::Detail::Optional<double> m_opt;
1865 friend struct DataModel::Detail::Befriend<
Red>;
1892 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1893 typename std::enable_if<
1894 Zivid::Detail::TypeTraits::
1895 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
1898 template<typename... Args>
1902 using namespace Zivid::Detail::TypeTraits;
1905 AllArgsDecayedAreUnique<Args...>::value,
1906 "Found duplicate types among the arguments passed to Balance(...). "
1907 "Types should be listed at most once.");
1909 set(std::forward<Args>(args)...);
1925 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1927 template<typename... Args>
1931 using namespace Zivid::Detail::TypeTraits;
1933 using AllArgsAreDescendantNodes =
1934 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1936 AllArgsAreDescendantNodes::value,
1937 "All arguments passed to set(...) must be descendant nodes.");
1940 AllArgsDecayedAreUnique<Args...>::value,
1941 "Found duplicate types among the arguments passed to set(...). "
1942 "Types should be listed at most once.");
1944 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1961 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1963 template<typename... Args>
1967 using namespace Zivid::Detail::TypeTraits;
1969 using AllArgsAreDescendantNodes =
1970 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1972 AllArgsAreDescendantNodes::value,
1973 "All arguments passed to copyWith(...) must be descendant nodes.");
1976 AllArgsDecayedAreUnique<Args...>::value,
1977 "Found duplicate types among the arguments passed to copyWith(...). "
1978 "Types should be listed at most once.");
1981 copy.
set(std::forward<Args>(args)...);
2044 typename std::enable_if<
2045 std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
2054 typename std::enable_if<
2055 std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
2065 enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::type = 0>
2071 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2077 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
2083 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
2090 template<
typename F>
2099 template<
typename F>
2123 void setFromString(
const std::string &value);
2125 void setFromString(
const std::string &fullPath,
const std::string &value);
2127 std::string getString(
const std::string &fullPath)
const;
2133 friend struct DataModel::Detail::Befriend<
Balance>;
2146 static constexpr const char *path{
"Processing/Color/Experimental" };
2149 static constexpr const char *name{
"Experimental" };
2152 static constexpr const char *description{
2153 R
"description(Experimental color settings. These may be renamed, moved or deleted in the future.)description"
2187 static constexpr const char *path{
"Processing/Color/Experimental/Mode" };
2190 static constexpr const char *name{
"Mode" };
2193 static constexpr const char *description{
2194 R
"description(This setting controls how the color image is computed.
2196`automatic` is the default option. `automatic` is identical to `useFirstAcquisition` for
2197single-acquisition captures and multi-acquisition captures when all the acquisitions have
2198identical (duplicated) acquisition settings. `automatic` is identical to `toneMapping` for
2199multi-acquisition HDR captures with differing acquisition settings.
2201`useFirstAcquisition` uses the color data acquired from the first acquisition provided. If
2202the capture consists of more than one acquisition, then the remaining acquisitions are not used
2203for the color image. No tone mapping is performed. This option provides the most control of
2204the color image, and the color values will be consistent over repeated captures with the same
2207`toneMapping` uses all the acquisitions to create one merged and normalized color image. For
2208HDR captures the dynamic range of the captured images is usually higher than the 8-bit color
2209image range. `toneMapping` will map the HDR color data to the 8-bit color output range by
2210applying a scaling factor. `toneMapping` can also be used for single-acquisition captures to
2211normalize the captured color image to the full 8-bit output. Note that when using `toneMapping`
2212mode the color values can be inconsistent over repeated captures if you move, add or remove
2213objects in the scene. For the most control over the colors, select the `useFirstAcquisition`
2222 useFirstAcquisition,
2232 return { ValueType::automatic, ValueType::useFirstAcquisition, ValueType::toneMapping };
2240 : m_opt{ verifyValue(value) }
2267 return m_opt == other.m_opt;
2273 return m_opt != other.m_opt;
2283 void setFromString(
const std::string &value);
2285 constexpr ValueType
static verifyValue(
const ValueType &value)
2287 return value == ValueType::automatic || value == ValueType::useFirstAcquisition
2288 || value == ValueType::toneMapping
2290 :
throw std::invalid_argument{
2291 "Invalid value: Mode{ "
2292 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value))
2297 Zivid::DataModel::Detail::Optional<ValueType> m_opt;
2299 friend struct DataModel::Detail::Befriend<
Mode>;
2302 using Descendants = std::tuple<Settings::Processing::Color::Experimental::Mode>;
2321 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2322 typename std::enable_if<
2323 Zivid::Detail::TypeTraits::
2324 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
2327 template<typename... Args>
2331 using namespace Zivid::Detail::TypeTraits;
2334 AllArgsDecayedAreUnique<Args...>::value,
2335 "Found duplicate types among the arguments passed to Experimental(...). "
2336 "Types should be listed at most once.");
2338 set(std::forward<Args>(args)...);
2352 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2354 template<typename... Args>
2358 using namespace Zivid::Detail::TypeTraits;
2360 using AllArgsAreDescendantNodes =
2361 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2363 AllArgsAreDescendantNodes::value,
2364 "All arguments passed to set(...) must be descendant nodes.");
2367 AllArgsDecayedAreUnique<Args...>::value,
2368 "Found duplicate types among the arguments passed to set(...). "
2369 "Types should be listed at most once.");
2371 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2386 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2388 template<typename... Args>
2392 using namespace Zivid::Detail::TypeTraits;
2394 using AllArgsAreDescendantNodes =
2395 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2397 AllArgsAreDescendantNodes::value,
2398 "All arguments passed to copyWith(...) must be descendant nodes.");
2401 AllArgsDecayedAreUnique<Args...>::value,
2402 "Found duplicate types among the arguments passed to copyWith(...). "
2403 "Types should be listed at most once.");
2406 copy.
set(std::forward<Args>(args)...);
2431 typename std::enable_if<
2432 std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
2439 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2446 template<
typename F>
2453 template<
typename F>
2475 void setFromString(
const std::string &value);
2477 void setFromString(
const std::string &fullPath,
const std::string &value);
2479 std::string getString(
const std::string &fullPath)
const;
2483 friend struct DataModel::Detail::Befriend<
Experimental>;
2498 static constexpr const char *path{
"Processing/Color/Gamma" };
2501 static constexpr const char *name{
"Gamma" };
2504 static constexpr const char *description{
2505 R
"description(Gamma applied to the color values. Gamma less than 1 makes the colors brighter, while gamma
2506greater than 1 makes the colors darker.
2516 return { 0.25, 1.5 };
2524 : m_opt{ verifyValue(value) }
2545 return m_opt == other.m_opt;
2551 return m_opt != other.m_opt;
2557 return m_opt < other.m_opt;
2563 return m_opt > other.m_opt;
2569 return m_opt <= other.m_opt;
2575 return m_opt >= other.m_opt;
2585 void setFromString(
const std::string &value);
2587 constexpr ValueType
static verifyValue(
const ValueType &value)
2589 return validRange().isInRange(value)
2591 :
throw std::out_of_range{
"Gamma{ " + std::to_string(value) +
" } is not in range ["
2592 + std::to_string(validRange().min()) +
", "
2593 + std::to_string(validRange().max()) +
"]" };
2596 Zivid::DataModel::Detail::Optional<double> m_opt;
2598 friend struct DataModel::Detail::Befriend<
Gamma>;
2633 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2634 typename std::enable_if<
2635 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
2639 template<typename... Args>
2643 using namespace Zivid::Detail::TypeTraits;
2646 AllArgsDecayedAreUnique<Args...>::value,
2647 "Found duplicate types among the arguments passed to Color(...). "
2648 "Types should be listed at most once.");
2650 set(std::forward<Args>(args)...);
2670 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2672 template<typename... Args>
2676 using namespace Zivid::Detail::TypeTraits;
2678 using AllArgsAreDescendantNodes =
2679 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2681 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
2684 AllArgsDecayedAreUnique<Args...>::value,
2685 "Found duplicate types among the arguments passed to set(...). "
2686 "Types should be listed at most once.");
2688 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2709 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2711 template<typename... Args>
2715 using namespace Zivid::Detail::TypeTraits;
2717 using AllArgsAreDescendantNodes =
2718 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2720 AllArgsAreDescendantNodes::value,
2721 "All arguments passed to copyWith(...) must be descendant nodes.");
2724 AllArgsDecayedAreUnique<Args...>::value,
2725 "Found duplicate types among the arguments passed to copyWith(...). "
2726 "Types should be listed at most once.");
2729 copy.
set(std::forward<Args>(args)...);
2755 m_balance.
set(value);
2762 m_balance.
set(value);
2769 m_balance.
set(value);
2776 return m_experimental;
2782 return m_experimental;
2788 m_experimental = value;
2795 m_experimental.
set(value);
2820 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance>::value,
int>::type =
2829 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
int>::
2838 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
int>::
2847 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::
2856 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental>::value,
int>::
2860 return m_experimental;
2865 typename std::enable_if<
2866 std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
2875 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Gamma>::value,
int>::type = 0>
2881 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2887 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
2890 return m_experimental;
2893 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
2900 template<
typename F>
2909 template<
typename F>
2933 void setFromString(
const std::string &value);
2935 void setFromString(
const std::string &fullPath,
const std::string &value);
2937 std::string getString(
const std::string &fullPath)
const;
2940 Experimental m_experimental;
2943 friend struct DataModel::Detail::Befriend<
Color>;
2956 static constexpr const char *path{
"Processing/Filters" };
2959 static constexpr const char *name{
"Filters" };
2962 static constexpr const char *description{ R
"description(Filter settings.)description" };
2975 static constexpr const char *path{
"Processing/Filters/Cluster" };
2978 static constexpr const char *name{
"Cluster" };
2981 static constexpr const char *description{
2982 R
"description(Removes floating points and isolated clusters from the point cloud.
2996 static constexpr const char *path{
"Processing/Filters/Cluster/Removal" };
2999 static constexpr const char *name{
"Removal" };
3002 static constexpr const char *description{ R
"description(Cluster removal filter.)description" };
3014 static constexpr const char *path{
"Processing/Filters/Cluster/Removal/Enabled" };
3017 static constexpr const char *name{
"Enabled" };
3020 static constexpr const char *description{
3021 R
"description(Enable or disable cluster removal.)description"
3032 return {
false,
true };
3061 return m_opt == other.m_opt;
3067 return m_opt != other.m_opt;
3077 void setFromString(
const std::string &value);
3079 Zivid::DataModel::Detail::Optional<bool> m_opt;
3081 friend struct DataModel::Detail::Befriend<
Enabled>;
3097 static constexpr const char *path{
3098 "Processing/Filters/Cluster/Removal/MaxNeighborDistance"
3102 static constexpr const char *name{
"MaxNeighborDistance" };
3105 static constexpr const char *description{
3106 R
"description(Maximum normalized distance between neighboring points that are still classified as
3107belonging to the same cluster. The default value is optimal for most scenes. On messy
3108scenes turning this setting down helps removing more bad points.
3118 return { 2.0, 10.0 };
3126 : m_opt{ verifyValue(value) }
3147 return m_opt == other.m_opt;
3153 return m_opt != other.m_opt;
3159 return m_opt < other.m_opt;
3165 return m_opt > other.m_opt;
3171 return m_opt <= other.m_opt;
3177 return m_opt >= other.m_opt;
3187 void setFromString(
const std::string &value);
3189 constexpr ValueType
static verifyValue(
const ValueType &value)
3191 return validRange().isInRange(value)
3193 :
throw std::out_of_range{
"MaxNeighborDistance{ " + std::to_string(value)
3194 +
" } is not in range ["
3195 + std::to_string(validRange().min()) +
", "
3196 + std::to_string(validRange().max()) +
"]" };
3199 Zivid::DataModel::Detail::Optional<double> m_opt;
3216 static constexpr const char *path{
"Processing/Filters/Cluster/Removal/MinArea" };
3219 static constexpr const char *name{
"MinArea" };
3222 static constexpr const char *description{
3223 R
"description(Clusters with area below this threshold are removed by the filter.
3224The area is given in mm^2.
3234 return { 0.0, 1500.0 };
3242 : m_opt{ verifyValue(value) }
3263 return m_opt == other.m_opt;
3269 return m_opt != other.m_opt;
3275 return m_opt < other.m_opt;
3281 return m_opt > other.m_opt;
3287 return m_opt <= other.m_opt;
3293 return m_opt >= other.m_opt;
3303 void setFromString(
const std::string &value);
3305 constexpr ValueType
static verifyValue(
const ValueType &value)
3307 return validRange().isInRange(value)
3309 :
throw std::out_of_range{
"MinArea{ " + std::to_string(value)
3310 +
" } is not in range ["
3311 + std::to_string(validRange().min()) +
", "
3312 + std::to_string(validRange().max()) +
"]" };
3315 Zivid::DataModel::Detail::Optional<double> m_opt;
3317 friend struct DataModel::Detail::Befriend<
MinArea>;
3344 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
3345 typename std::enable_if<
3346 Zivid::Detail::TypeTraits::
3347 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
3350 template<typename... Args>
3354 using namespace Zivid::Detail::TypeTraits;
3357 AllArgsDecayedAreUnique<Args...>::value,
3358 "Found duplicate types among the arguments passed to Removal(...). "
3359 "Types should be listed at most once.");
3361 set(std::forward<Args>(args)...);
3377 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
3379 template<typename... Args>
3383 using namespace Zivid::Detail::TypeTraits;
3385 using AllArgsAreDescendantNodes =
3386 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3388 AllArgsAreDescendantNodes::value,
3389 "All arguments passed to set(...) must be descendant nodes.");
3392 AllArgsDecayedAreUnique<Args...>::value,
3393 "Found duplicate types among the arguments passed to set(...). "
3394 "Types should be listed at most once.");
3396 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
3413 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
3415 template<typename... Args>
3419 using namespace Zivid::Detail::TypeTraits;
3421 using AllArgsAreDescendantNodes =
3422 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3424 AllArgsAreDescendantNodes::value,
3425 "All arguments passed to copyWith(...) must be descendant nodes.");
3428 AllArgsDecayedAreUnique<Args...>::value,
3429 "Found duplicate types among the arguments passed to copyWith(...). "
3430 "Types should be listed at most once.");
3433 copy.
set(std::forward<Args>(args)...);
3459 return m_maxNeighborDistance;
3465 return m_maxNeighborDistance;
3471 m_maxNeighborDistance = value;
3496 typename std::enable_if<
3497 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
3506 typename std::enable_if<
3507 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::
3512 return m_maxNeighborDistance;
3517 typename std::enable_if<
3518 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
3525 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
3531 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
3534 return m_maxNeighborDistance;
3537 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
3544 template<
typename F>
3548 f(m_maxNeighborDistance);
3553 template<
typename F>
3557 f(m_maxNeighborDistance);
3577 void setFromString(
const std::string &value);
3579 void setFromString(
const std::string &fullPath,
const std::string &value);
3581 std::string getString(
const std::string &fullPath)
const;
3584 MaxNeighborDistance m_maxNeighborDistance;
3587 friend struct DataModel::Detail::Befriend<
Removal>;
3616 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
3617 typename std::enable_if<
3618 Zivid::Detail::TypeTraits::
3619 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
3622 template<typename... Args>
3626 using namespace Zivid::Detail::TypeTraits;
3629 AllArgsDecayedAreUnique<Args...>::value,
3630 "Found duplicate types among the arguments passed to Cluster(...). "
3631 "Types should be listed at most once.");
3633 set(std::forward<Args>(args)...);
3650 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
3652 template<typename... Args>
3656 using namespace Zivid::Detail::TypeTraits;
3658 using AllArgsAreDescendantNodes =
3659 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3661 AllArgsAreDescendantNodes::value,
3662 "All arguments passed to set(...) must be descendant nodes.");
3665 AllArgsDecayedAreUnique<Args...>::value,
3666 "Found duplicate types among the arguments passed to set(...). "
3667 "Types should be listed at most once.");
3669 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
3687 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
3689 template<typename... Args>
3693 using namespace Zivid::Detail::TypeTraits;
3695 using AllArgsAreDescendantNodes =
3696 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3698 AllArgsAreDescendantNodes::value,
3699 "All arguments passed to copyWith(...) must be descendant nodes.");
3702 AllArgsDecayedAreUnique<Args...>::value,
3703 "Found duplicate types among the arguments passed to copyWith(...). "
3704 "Types should be listed at most once.");
3707 copy.
set(std::forward<Args>(args)...);
3733 m_removal.
set(value);
3740 m_removal.
set(value);
3747 m_removal.
set(value);
3753 typename std::enable_if<
3754 std::is_same<T, Settings::Processing::Filters::Cluster::Removal>::value,
3763 typename std::enable_if<
3764 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
3773 typename std::enable_if<
3774 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::
3784 typename std::enable_if<
3785 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
3792 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
3799 template<
typename F>
3806 template<
typename F>
3828 void setFromString(
const std::string &value);
3830 void setFromString(
const std::string &fullPath,
const std::string &value);
3832 std::string getString(
const std::string &fullPath)
const;
3836 friend struct DataModel::Detail::Befriend<
Cluster>;
3849 static constexpr const char *path{
"Processing/Filters/Experimental" };
3852 static constexpr const char *name{
"Experimental" };
3855 static constexpr const char *description{
3856 R
"description(Experimental filters. These may be renamed, moved or deleted in the future.)description"
3873 static constexpr const char *path{
"Processing/Filters/Experimental/ContrastDistortion" };
3876 static constexpr const char *name{
"ContrastDistortion" };
3879 static constexpr const char *description{
3880 R
"description(Corrects artifacts that appear when imaging scenes with large texture gradients
3881or high contrast. These artifacts are caused by blurring in the lens. The filter
3882works best when aperture values are chosen such that the camera has quite good focus.
3883The filter also supports removing the points that experience a large correction.
3897 static constexpr const char *path{
3898 "Processing/Filters/Experimental/ContrastDistortion/Correction"
3902 static constexpr const char *name{
"Correction" };
3905 static constexpr const char *description{
3906 R
"description(Contrast distortion correction filter.)description"
3919 static constexpr const char *path{
3920 "Processing/Filters/Experimental/ContrastDistortion/Correction/Enabled"
3924 static constexpr const char *name{
"Enabled" };
3927 static constexpr const char *description{
3928 R
"description(Enable or disable contrast distortion correction.)description"
3939 return {
false,
true };
3968 return m_opt == other.m_opt;
3974 return m_opt != other.m_opt;
3984 void setFromString(
const std::string &value);
3986 Zivid::DataModel::Detail::Optional<bool> m_opt;
3988 friend struct DataModel::Detail::Befriend<
Enabled>;
4001 static constexpr const char *path{
4002 "Processing/Filters/Experimental/ContrastDistortion/Correction/Strength"
4006 static constexpr const char *name{
"Strength" };
4009 static constexpr const char *description{
4010 R
"description(Strength of correction. Higher values give more correction.)description"
4019 return { 0.0, 1.0 };
4027 : m_opt{ verifyValue(value) }
4048 return m_opt == other.m_opt;
4054 return m_opt != other.m_opt;
4060 return m_opt < other.m_opt;
4066 return m_opt > other.m_opt;
4072 return m_opt <= other.m_opt;
4078 return m_opt >= other.m_opt;
4088 void setFromString(
const std::string &value);
4090 constexpr ValueType
static verifyValue(
const ValueType &value)
4092 return validRange().isInRange(value)
4094 :
throw std::out_of_range{
"Strength{ " + std::to_string(value)
4095 +
" } is not in range ["
4096 + std::to_string(validRange().min()) +
", "
4097 + std::to_string(validRange().max()) +
"]" };
4100 Zivid::DataModel::Detail::Optional<double> m_opt;
4102 friend struct DataModel::Detail::Befriend<
Strength>;
4127 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
4128 typename std::enable_if<
4129 Zivid::Detail::TypeTraits::
4130 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
4133 template<typename... Args>
4137 using namespace Zivid::Detail::TypeTraits;
4140 AllArgsDecayedAreUnique<Args...>::value,
4141 "Found duplicate types among the arguments passed to Correction(...). "
4142 "Types should be listed at most once.");
4144 set(std::forward<Args>(args)...);
4159 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
4161 template<typename... Args>
4165 using namespace Zivid::Detail::TypeTraits;
4167 using AllArgsAreDescendantNodes =
4168 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4170 AllArgsAreDescendantNodes::value,
4171 "All arguments passed to set(...) must be descendant nodes.");
4174 AllArgsDecayedAreUnique<Args...>::value,
4175 "Found duplicate types among the arguments passed to set(...). "
4176 "Types should be listed at most once.");
4178 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
4194 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
4196 template<typename... Args>
4200 using namespace Zivid::Detail::TypeTraits;
4202 using AllArgsAreDescendantNodes =
4203 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4205 AllArgsAreDescendantNodes::value,
4206 "All arguments passed to copyWith(...) must be descendant nodes.");
4209 AllArgsDecayedAreUnique<Args...>::value,
4210 "Found duplicate types among the arguments passed to copyWith(...). "
4211 "Types should be listed at most once.");
4214 copy.
set(std::forward<Args>(args)...);
4258 typename std::enable_if<
4261 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
4272 typename std::enable_if<
4275 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
4278 const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
4285 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
4292 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
4293 const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
4301 template<
typename F>
4309 template<
typename F>
4332 void setFromString(
const std::string &value);
4334 void setFromString(
const std::string &fullPath,
const std::string &value);
4336 std::string getString(
const std::string &fullPath)
const;
4341 friend struct DataModel::Detail::Befriend<
Correction>;
4354 static constexpr const char *path{
4355 "Processing/Filters/Experimental/ContrastDistortion/Removal"
4359 static constexpr const char *name{
"Removal" };
4362 static constexpr const char *description{
4363 R
"description(Contrast distortion removal filter.)description"
4376 static constexpr const char *path{
4377 "Processing/Filters/Experimental/ContrastDistortion/Removal/Enabled"
4381 static constexpr const char *name{
"Enabled" };
4384 static constexpr const char *description{
4385 R
"description(Enable or disable contrast distortion removal.)description"
4396 return {
false,
true };
4425 return m_opt == other.m_opt;
4431 return m_opt != other.m_opt;
4441 void setFromString(
const std::string &value);
4443 Zivid::DataModel::Detail::Optional<bool> m_opt;
4445 friend struct DataModel::Detail::Befriend<
Enabled>;
4458 static constexpr const char *path{
4459 "Processing/Filters/Experimental/ContrastDistortion/Removal/Threshold"
4463 static constexpr const char *name{
"Threshold" };
4466 static constexpr const char *description{
4467 R
"description(Threshold for removal. Higher values remove more points.)description"
4476 return { 0.0, 1.0 };
4484 : m_opt{ verifyValue(value) }
4505 return m_opt == other.m_opt;
4511 return m_opt != other.m_opt;
4517 return m_opt < other.m_opt;
4523 return m_opt > other.m_opt;
4529 return m_opt <= other.m_opt;
4535 return m_opt >= other.m_opt;
4545 void setFromString(
const std::string &value);
4547 constexpr ValueType
static verifyValue(
const ValueType &value)
4549 return validRange().isInRange(value)
4551 :
throw std::out_of_range{
"Threshold{ " + std::to_string(value)
4552 +
" } is not in range ["
4553 + std::to_string(validRange().min()) +
", "
4554 + std::to_string(validRange().max()) +
"]" };
4557 Zivid::DataModel::Detail::Optional<double> m_opt;
4559 friend struct DataModel::Detail::Befriend<
Threshold>;
4584 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
4585 typename std::enable_if<
4586 Zivid::Detail::TypeTraits::
4587 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
4590 template<typename... Args>
4594 using namespace Zivid::Detail::TypeTraits;
4597 AllArgsDecayedAreUnique<Args...>::value,
4598 "Found duplicate types among the arguments passed to Removal(...). "
4599 "Types should be listed at most once.");
4601 set(std::forward<Args>(args)...);
4616 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
4618 template<typename... Args>
4622 using namespace Zivid::Detail::TypeTraits;
4624 using AllArgsAreDescendantNodes =
4625 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4627 AllArgsAreDescendantNodes::value,
4628 "All arguments passed to set(...) must be descendant nodes.");
4631 AllArgsDecayedAreUnique<Args...>::value,
4632 "Found duplicate types among the arguments passed to set(...). "
4633 "Types should be listed at most once.");
4635 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
4651 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
4653 template<typename... Args>
4657 using namespace Zivid::Detail::TypeTraits;
4659 using AllArgsAreDescendantNodes =
4660 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4662 AllArgsAreDescendantNodes::value,
4663 "All arguments passed to copyWith(...) must be descendant nodes.");
4666 AllArgsDecayedAreUnique<Args...>::value,
4667 "Found duplicate types among the arguments passed to copyWith(...). "
4668 "Types should be listed at most once.");
4671 copy.
set(std::forward<Args>(args)...);
4709 m_threshold = value;
4715 typename std::enable_if<
4718 Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::
4729 typename std::enable_if<
4732 Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::
4741 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
4748 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
4756 template<
typename F>
4764 template<
typename F>
4787 void setFromString(
const std::string &value);
4789 void setFromString(
const std::string &fullPath,
const std::string &value);
4791 std::string getString(
const std::string &fullPath)
const;
4796 friend struct DataModel::Detail::Befriend<
Removal>;
4829 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
4830 typename std::enable_if<
4831 Zivid::Detail::TypeTraits::
4832 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
4835 template<typename... Args>
4839 using namespace Zivid::Detail::TypeTraits;
4842 AllArgsDecayedAreUnique<Args...>::value,
4843 "Found duplicate types among the arguments passed to ContrastDistortion(...). "
4844 "Types should be listed at most once.");
4846 set(std::forward<Args>(args)...);
4865 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
4867 template<typename... Args>
4871 using namespace Zivid::Detail::TypeTraits;
4873 using AllArgsAreDescendantNodes =
4874 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4876 AllArgsAreDescendantNodes::value,
4877 "All arguments passed to set(...) must be descendant nodes.");
4880 AllArgsDecayedAreUnique<Args...>::value,
4881 "Found duplicate types among the arguments passed to set(...). "
4882 "Types should be listed at most once.");
4884 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
4904 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
4906 template<typename... Args>
4910 using namespace Zivid::Detail::TypeTraits;
4912 using AllArgsAreDescendantNodes =
4913 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4915 AllArgsAreDescendantNodes::value,
4916 "All arguments passed to copyWith(...) must be descendant nodes.");
4919 AllArgsDecayedAreUnique<Args...>::value,
4920 "Found duplicate types among the arguments passed to copyWith(...). "
4921 "Types should be listed at most once.");
4924 copy.
set(std::forward<Args>(args)...);
4931 return m_correction;
4937 return m_correction;
4943 m_correction = value;
4950 m_correction.
set(value);
4957 m_correction.
set(value);
4983 m_removal.
set(value);
4990 m_removal.
set(value);
4996 typename std::enable_if<
5003 return m_correction;
5008 typename std::enable_if<
5011 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
5017 return m_correction.get<
5023 typename std::enable_if<
5026 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
5032 return m_correction.get<Settings::Processing::Filters::Experimental::ContrastDistortion::
5033 Correction::Strength>();
5038 typename std::enable_if<
5050 typename std::enable_if<
5059 return m_removal.get<
5065 typename std::enable_if<
5068 Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::
5074 return m_removal.get<
5078 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
5081 return m_correction;
5084 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
5091 template<
typename F>
5099 template<
typename F>
5122 void setFromString(
const std::string &value);
5124 void setFromString(
const std::string &fullPath,
const std::string &value);
5126 std::string getString(
const std::string &fullPath)
const;
5128 Correction m_correction;
5166 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
5167 typename std::enable_if<
5168 Zivid::Detail::TypeTraits::
5169 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
5172 template<typename... Args>
5176 using namespace Zivid::Detail::TypeTraits;
5179 AllArgsDecayedAreUnique<Args...>::value,
5180 "Found duplicate types among the arguments passed to Experimental(...). "
5181 "Types should be listed at most once.");
5183 set(std::forward<Args>(args)...);
5203 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
5205 template<typename... Args>
5209 using namespace Zivid::Detail::TypeTraits;
5211 using AllArgsAreDescendantNodes =
5212 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5214 AllArgsAreDescendantNodes::value,
5215 "All arguments passed to set(...) must be descendant nodes.");
5218 AllArgsDecayedAreUnique<Args...>::value,
5219 "Found duplicate types among the arguments passed to set(...). "
5220 "Types should be listed at most once.");
5222 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
5243 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
5245 template<typename... Args>
5249 using namespace Zivid::Detail::TypeTraits;
5251 using AllArgsAreDescendantNodes =
5252 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5254 AllArgsAreDescendantNodes::value,
5255 "All arguments passed to copyWith(...) must be descendant nodes.");
5258 AllArgsDecayedAreUnique<Args...>::value,
5259 "Found duplicate types among the arguments passed to copyWith(...). "
5260 "Types should be listed at most once.");
5263 copy.
set(std::forward<Args>(args)...);
5270 return m_contrastDistortion;
5276 return m_contrastDistortion;
5282 m_contrastDistortion = value;
5289 m_contrastDistortion.
set(value);
5296 m_contrastDistortion.
set(value);
5303 m_contrastDistortion.
set(value);
5310 m_contrastDistortion.
set(value);
5317 m_contrastDistortion.
set(value);
5324 m_contrastDistortion.
set(value);
5330 typename std::enable_if<
5331 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
5335 return m_contrastDistortion;
5340 typename std::enable_if<
5347 return m_contrastDistortion
5353 typename std::enable_if<
5362 return m_contrastDistortion.get<
5368 typename std::enable_if<
5377 return m_contrastDistortion.get<
5383 typename std::enable_if<
5384 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::
5389 return m_contrastDistortion
5395 typename std::enable_if<
5403 return m_contrastDistortion
5409 typename std::enable_if<
5418 return m_contrastDistortion
5422 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
5425 return m_contrastDistortion;
5429 template<
typename F>
5432 f(m_contrastDistortion);
5436 template<
typename F>
5439 f(m_contrastDistortion);
5458 void setFromString(
const std::string &value);
5460 void setFromString(
const std::string &fullPath,
const std::string &value);
5462 std::string getString(
const std::string &fullPath)
const;
5466 friend struct DataModel::Detail::Befriend<
Experimental>;
5479 static constexpr const char *path{
"Processing/Filters/Hole" };
5482 static constexpr const char *name{
"Hole" };
5485 static constexpr const char *description{
5486 R
"description(Contains filters that can be used to deal with holes in the point cloud.)description"
5500 static constexpr const char *path{
"Processing/Filters/Hole/Repair" };
5503 static constexpr const char *name{
"Repair" };
5506 static constexpr const char *description{
5507 R
"description(Fills in point cloud holes by interpolating remaining surrounding points.
5521 static constexpr const char *path{
"Processing/Filters/Hole/Repair/Enabled" };
5524 static constexpr const char *name{
"Enabled" };
5527 static constexpr const char *description{
5528 R
"description(Enable or disable hole repair.)description"
5539 return {
false,
true };
5568 return m_opt == other.m_opt;
5574 return m_opt != other.m_opt;
5584 void setFromString(
const std::string &value);
5586 Zivid::DataModel::Detail::Optional<bool> m_opt;
5588 friend struct DataModel::Detail::Befriend<
Enabled>;
5604 static constexpr const char *path{
"Processing/Filters/Hole/Repair/HoleSize" };
5607 static constexpr const char *name{
"HoleSize" };
5610 static constexpr const char *description{
5611 R
"description(Relative diameter of holes to fill. Increasing this will fill more points, but require more
5612computation time. The maximum allowed hole size scales with distance, so that we allow
5613filling larger holes at greater distances, measured in mm.
5623 return { 0.0, 1.0 };
5631 : m_opt{ verifyValue(value) }
5652 return m_opt == other.m_opt;
5658 return m_opt != other.m_opt;
5664 return m_opt < other.m_opt;
5670 return m_opt > other.m_opt;
5676 return m_opt <= other.m_opt;
5682 return m_opt >= other.m_opt;
5692 void setFromString(
const std::string &value);
5694 constexpr ValueType
static verifyValue(
const ValueType &value)
5696 return validRange().isInRange(value)
5698 :
throw std::out_of_range{
"HoleSize{ " + std::to_string(value)
5699 +
" } is not in range ["
5700 + std::to_string(validRange().min()) +
", "
5701 + std::to_string(validRange().max()) +
"]" };
5704 Zivid::DataModel::Detail::Optional<double> m_opt;
5706 friend struct DataModel::Detail::Befriend<
HoleSize>;
5723 static constexpr const char *path{
"Processing/Filters/Hole/Repair/Strictness" };
5726 static constexpr const char *name{
"Strictness" };
5729 static constexpr const char *description{
5730 R
"description(Level of strictness when considering if a point should be filled. A higher level of
5731strictness requires a missing point to be surrounded by valid points on more sides in
5732order to be filled. Increasing this will fill fewer points, but it will be less likely to
5733fill gaps that are not circular, for example between two edges.
5751 : m_opt{ verifyValue(value) }
5772 return m_opt == other.m_opt;
5778 return m_opt != other.m_opt;
5784 return m_opt < other.m_opt;
5790 return m_opt > other.m_opt;
5796 return m_opt <= other.m_opt;
5802 return m_opt >= other.m_opt;
5812 void setFromString(
const std::string &value);
5814 constexpr ValueType
static verifyValue(
const ValueType &value)
5816 return validRange().isInRange(value)
5818 :
throw std::out_of_range{
"Strictness{ " + std::to_string(value)
5819 +
" } is not in range ["
5820 + std::to_string(validRange().min()) +
", "
5821 + std::to_string(validRange().max()) +
"]" };
5824 Zivid::DataModel::Detail::Optional<int32_t> m_opt;
5826 friend struct DataModel::Detail::Befriend<
Strictness>;
5853 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
5854 typename std::enable_if<
5855 Zivid::Detail::TypeTraits::
5856 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
5859 template<typename... Args>
5863 using namespace Zivid::Detail::TypeTraits;
5866 AllArgsDecayedAreUnique<Args...>::value,
5867 "Found duplicate types among the arguments passed to Repair(...). "
5868 "Types should be listed at most once.");
5870 set(std::forward<Args>(args)...);
5886 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
5888 template<typename... Args>
5892 using namespace Zivid::Detail::TypeTraits;
5894 using AllArgsAreDescendantNodes =
5895 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5897 AllArgsAreDescendantNodes::value,
5898 "All arguments passed to set(...) must be descendant nodes.");
5901 AllArgsDecayedAreUnique<Args...>::value,
5902 "Found duplicate types among the arguments passed to set(...). "
5903 "Types should be listed at most once.");
5905 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
5922 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
5924 template<typename... Args>
5928 using namespace Zivid::Detail::TypeTraits;
5930 using AllArgsAreDescendantNodes =
5931 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5933 AllArgsAreDescendantNodes::value,
5934 "All arguments passed to copyWith(...) must be descendant nodes.");
5937 AllArgsDecayedAreUnique<Args...>::value,
5938 "Found duplicate types among the arguments passed to copyWith(...). "
5939 "Types should be listed at most once.");
5942 copy.
set(std::forward<Args>(args)...);
5987 return m_strictness;
5993 return m_strictness;
5999 m_strictness = value;
6005 typename std::enable_if<
6006 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Enabled>::value,
6015 typename std::enable_if<
6016 std::is_same<T, Settings::Processing::Filters::Hole::Repair::HoleSize>::value,
6025 typename std::enable_if<
6026 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Strictness>::value,
6030 return m_strictness;
6033 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
6039 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
6045 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
6048 return m_strictness;
6052 template<
typename F>
6061 template<
typename F>
6085 void setFromString(
const std::string &value);
6087 void setFromString(
const std::string &fullPath,
const std::string &value);
6089 std::string getString(
const std::string &fullPath)
const;
6092 HoleSize m_holeSize;
6095 friend struct DataModel::Detail::Befriend<
Repair>;
6124 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
6125 typename std::enable_if<
6126 Zivid::Detail::TypeTraits::
6127 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
6130 template<typename... Args>
6134 using namespace Zivid::Detail::TypeTraits;
6137 AllArgsDecayedAreUnique<Args...>::value,
6138 "Found duplicate types among the arguments passed to Hole(...). "
6139 "Types should be listed at most once.");
6141 set(std::forward<Args>(args)...);
6158 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
6160 template<typename... Args>
6164 using namespace Zivid::Detail::TypeTraits;
6166 using AllArgsAreDescendantNodes =
6167 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6169 AllArgsAreDescendantNodes::value,
6170 "All arguments passed to set(...) must be descendant nodes.");
6173 AllArgsDecayedAreUnique<Args...>::value,
6174 "Found duplicate types among the arguments passed to set(...). "
6175 "Types should be listed at most once.");
6177 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
6195 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
6197 template<typename... Args>
6201 using namespace Zivid::Detail::TypeTraits;
6203 using AllArgsAreDescendantNodes =
6204 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6206 AllArgsAreDescendantNodes::value,
6207 "All arguments passed to copyWith(...) must be descendant nodes.");
6210 AllArgsDecayedAreUnique<Args...>::value,
6211 "Found duplicate types among the arguments passed to copyWith(...). "
6212 "Types should be listed at most once.");
6215 copy.
set(std::forward<Args>(args)...);
6241 m_repair.
set(value);
6248 m_repair.
set(value);
6255 m_repair.
set(value);
6261 typename std::enable_if<
6262 std::is_same<T, Settings::Processing::Filters::Hole::Repair>::value,
6271 typename std::enable_if<
6272 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Enabled>::value,
6281 typename std::enable_if<
6282 std::is_same<T, Settings::Processing::Filters::Hole::Repair::HoleSize>::value,
6291 typename std::enable_if<
6292 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Strictness>::value,
6299 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
6306 template<
typename F>
6313 template<
typename F>
6335 void setFromString(
const std::string &value);
6337 void setFromString(
const std::string &fullPath,
const std::string &value);
6339 std::string getString(
const std::string &fullPath)
const;
6343 friend struct DataModel::Detail::Befriend<
Hole>;
6356 static constexpr const char *path{
"Processing/Filters/Noise" };
6359 static constexpr const char *name{
"Noise" };
6362 static constexpr const char *description{
6363 R
"description(Contains filters that can be used to clean up a noisy point cloud.)description"
6376 static constexpr const char *path{
"Processing/Filters/Noise/Removal" };
6379 static constexpr const char *name{
"Removal" };
6382 static constexpr const char *description{
6383 R
"description(Discard points with signal-to-noise ratio (SNR) values below a threshold.)description"
6396 static constexpr const char *path{
"Processing/Filters/Noise/Removal/Enabled" };
6399 static constexpr const char *name{
"Enabled" };
6402 static constexpr const char *description{
6403 R
"description(Enable or disable the SNR filter.)description"
6414 return {
false,
true };
6443 return m_opt == other.m_opt;
6449 return m_opt != other.m_opt;
6459 void setFromString(
const std::string &value);
6461 Zivid::DataModel::Detail::Optional<bool> m_opt;
6463 friend struct DataModel::Detail::Befriend<
Enabled>;
6476 static constexpr const char *path{
"Processing/Filters/Noise/Removal/Threshold" };
6479 static constexpr const char *name{
"Threshold" };
6482 static constexpr const char *description{
6483 R
"description(Discard points with signal-to-noise ratio (SNR) below the given value.)description"
6492 return { 0.0, 100.0 };
6500 : m_opt{ verifyValue(value) }
6521 return m_opt == other.m_opt;
6527 return m_opt != other.m_opt;
6533 return m_opt < other.m_opt;
6539 return m_opt > other.m_opt;
6545 return m_opt <= other.m_opt;
6551 return m_opt >= other.m_opt;
6561 void setFromString(
const std::string &value);
6563 constexpr ValueType
static verifyValue(
const ValueType &value)
6565 return validRange().isInRange(value)
6567 :
throw std::out_of_range{
"Threshold{ " + std::to_string(value)
6568 +
" } is not in range ["
6569 + std::to_string(validRange().min()) +
", "
6570 + std::to_string(validRange().max()) +
"]" };
6573 Zivid::DataModel::Detail::Optional<double> m_opt;
6575 friend struct DataModel::Detail::Befriend<
Threshold>;
6600 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
6601 typename std::enable_if<
6602 Zivid::Detail::TypeTraits::
6603 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
6606 template<typename... Args>
6610 using namespace Zivid::Detail::TypeTraits;
6613 AllArgsDecayedAreUnique<Args...>::value,
6614 "Found duplicate types among the arguments passed to Removal(...). "
6615 "Types should be listed at most once.");
6617 set(std::forward<Args>(args)...);
6632 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
6634 template<typename... Args>
6638 using namespace Zivid::Detail::TypeTraits;
6640 using AllArgsAreDescendantNodes =
6641 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6643 AllArgsAreDescendantNodes::value,
6644 "All arguments passed to set(...) must be descendant nodes.");
6647 AllArgsDecayedAreUnique<Args...>::value,
6648 "Found duplicate types among the arguments passed to set(...). "
6649 "Types should be listed at most once.");
6651 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
6667 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
6669 template<typename... Args>
6673 using namespace Zivid::Detail::TypeTraits;
6675 using AllArgsAreDescendantNodes =
6676 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6678 AllArgsAreDescendantNodes::value,
6679 "All arguments passed to copyWith(...) must be descendant nodes.");
6682 AllArgsDecayedAreUnique<Args...>::value,
6683 "Found duplicate types among the arguments passed to copyWith(...). "
6684 "Types should be listed at most once.");
6687 copy.
set(std::forward<Args>(args)...);
6725 m_threshold = value;
6731 typename std::enable_if<
6732 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
6741 typename std::enable_if<
6742 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
6749 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
6755 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
6762 template<
typename F>
6770 template<
typename F>
6793 void setFromString(
const std::string &value);
6795 void setFromString(
const std::string &fullPath,
const std::string &value);
6797 std::string getString(
const std::string &fullPath)
const;
6802 friend struct DataModel::Detail::Befriend<
Removal>;
6818 static constexpr const char *path{
"Processing/Filters/Noise/Repair" };
6821 static constexpr const char *name{
"Repair" };
6824 static constexpr const char *description{
6825 R
"description(Get better surface coverage by repairing regions of missing data due to noisy points.
6826Consider disabling this filter if you require all points in your point cloud to be of
6841 static constexpr const char *path{
"Processing/Filters/Noise/Repair/Enabled" };
6844 static constexpr const char *name{
"Enabled" };
6847 static constexpr const char *description{
6848 R
"description(Enable or disable noise repair.)description"
6859 return {
false,
true };
6888 return m_opt == other.m_opt;
6894 return m_opt != other.m_opt;
6904 void setFromString(
const std::string &value);
6906 Zivid::DataModel::Detail::Optional<bool> m_opt;
6908 friend struct DataModel::Detail::Befriend<
Enabled>;
6911 using Descendants = std::tuple<Settings::Processing::Filters::Noise::Repair::Enabled>;
6930 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
6931 typename std::enable_if<
6932 Zivid::Detail::TypeTraits::
6933 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
6936 template<typename... Args>
6940 using namespace Zivid::Detail::TypeTraits;
6943 AllArgsDecayedAreUnique<Args...>::value,
6944 "Found duplicate types among the arguments passed to Repair(...). "
6945 "Types should be listed at most once.");
6947 set(std::forward<Args>(args)...);
6961 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
6963 template<typename... Args>
6967 using namespace Zivid::Detail::TypeTraits;
6969 using AllArgsAreDescendantNodes =
6970 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6972 AllArgsAreDescendantNodes::value,
6973 "All arguments passed to set(...) must be descendant nodes.");
6976 AllArgsDecayedAreUnique<Args...>::value,
6977 "Found duplicate types among the arguments passed to set(...). "
6978 "Types should be listed at most once.");
6980 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
6995 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
6997 template<typename... Args>
7001 using namespace Zivid::Detail::TypeTraits;
7003 using AllArgsAreDescendantNodes =
7004 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7006 AllArgsAreDescendantNodes::value,
7007 "All arguments passed to copyWith(...) must be descendant nodes.");
7010 AllArgsDecayedAreUnique<Args...>::value,
7011 "Found duplicate types among the arguments passed to copyWith(...). "
7012 "Types should be listed at most once.");
7015 copy.
set(std::forward<Args>(args)...);
7040 typename std::enable_if<
7041 std::is_same<T, Settings::Processing::Filters::Noise::Repair::Enabled>::value,
7048 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
7055 template<
typename F>
7062 template<
typename F>
7084 void setFromString(
const std::string &value);
7086 void setFromString(
const std::string &fullPath,
const std::string &value);
7088 std::string getString(
const std::string &fullPath)
const;
7092 friend struct DataModel::Detail::Befriend<
Repair>;
7108 static constexpr const char *path{
"Processing/Filters/Noise/Suppression" };
7111 static constexpr const char *name{
"Suppression" };
7114 static constexpr const char *description{
7115 R
"description(Reduce noise and outliers in the point cloud. This filter can also be used to reduce
7116ripple effects caused by interreflections. Consider disabling this filter if you need to
7117distinguish very fine details and thus need to avoid any smoothing effects.
7131 static constexpr const char *path{
"Processing/Filters/Noise/Suppression/Enabled" };
7134 static constexpr const char *name{
"Enabled" };
7137 static constexpr const char *description{
7138 R
"description(Enable or disable noise suppression.)description"
7149 return {
false,
true };
7178 return m_opt == other.m_opt;
7184 return m_opt != other.m_opt;
7194 void setFromString(
const std::string &value);
7196 Zivid::DataModel::Detail::Optional<bool> m_opt;
7198 friend struct DataModel::Detail::Befriend<
Enabled>;
7201 using Descendants = std::tuple<Settings::Processing::Filters::Noise::Suppression::Enabled>;
7220 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
7221 typename std::enable_if<
7222 Zivid::Detail::TypeTraits::
7223 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
7226 template<typename... Args>
7230 using namespace Zivid::Detail::TypeTraits;
7233 AllArgsDecayedAreUnique<Args...>::value,
7234 "Found duplicate types among the arguments passed to Suppression(...). "
7235 "Types should be listed at most once.");
7237 set(std::forward<Args>(args)...);
7251 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
7253 template<typename... Args>
7257 using namespace Zivid::Detail::TypeTraits;
7259 using AllArgsAreDescendantNodes =
7260 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7262 AllArgsAreDescendantNodes::value,
7263 "All arguments passed to set(...) must be descendant nodes.");
7266 AllArgsDecayedAreUnique<Args...>::value,
7267 "Found duplicate types among the arguments passed to set(...). "
7268 "Types should be listed at most once.");
7270 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
7285 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
7287 template<typename... Args>
7291 using namespace Zivid::Detail::TypeTraits;
7293 using AllArgsAreDescendantNodes =
7294 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7296 AllArgsAreDescendantNodes::value,
7297 "All arguments passed to copyWith(...) must be descendant nodes.");
7300 AllArgsDecayedAreUnique<Args...>::value,
7301 "Found duplicate types among the arguments passed to copyWith(...). "
7302 "Types should be listed at most once.");
7305 copy.
set(std::forward<Args>(args)...);
7330 typename std::enable_if<
7331 std::is_same<T, Settings::Processing::Filters::Noise::Suppression::Enabled>::value,
7338 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
7345 template<
typename F>
7352 template<
typename F>
7374 void setFromString(
const std::string &value);
7376 void setFromString(
const std::string &fullPath,
const std::string &value);
7378 std::string getString(
const std::string &fullPath)
const;
7382 friend struct DataModel::Detail::Befriend<
Suppression>;
7417 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
7418 typename std::enable_if<
7419 Zivid::Detail::TypeTraits::
7420 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
7423 template<typename... Args>
7427 using namespace Zivid::Detail::TypeTraits;
7430 AllArgsDecayedAreUnique<Args...>::value,
7431 "Found duplicate types among the arguments passed to Noise(...). "
7432 "Types should be listed at most once.");
7434 set(std::forward<Args>(args)...);
7454 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
7456 template<typename... Args>
7460 using namespace Zivid::Detail::TypeTraits;
7462 using AllArgsAreDescendantNodes =
7463 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7465 AllArgsAreDescendantNodes::value,
7466 "All arguments passed to set(...) must be descendant nodes.");
7469 AllArgsDecayedAreUnique<Args...>::value,
7470 "Found duplicate types among the arguments passed to set(...). "
7471 "Types should be listed at most once.");
7473 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
7494 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
7496 template<typename... Args>
7500 using namespace Zivid::Detail::TypeTraits;
7502 using AllArgsAreDescendantNodes =
7503 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7505 AllArgsAreDescendantNodes::value,
7506 "All arguments passed to copyWith(...) must be descendant nodes.");
7509 AllArgsDecayedAreUnique<Args...>::value,
7510 "Found duplicate types among the arguments passed to copyWith(...). "
7511 "Types should be listed at most once.");
7514 copy.
set(std::forward<Args>(args)...);
7540 m_removal.
set(value);
7547 m_removal.
set(value);
7573 m_repair.
set(value);
7580 return m_suppression;
7586 return m_suppression;
7592 m_suppression = value;
7599 m_suppression.
set(value);
7605 typename std::enable_if<
7606 std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
7615 typename std::enable_if<
7616 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
7625 typename std::enable_if<
7626 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
7635 typename std::enable_if<
7636 std::is_same<T, Settings::Processing::Filters::Noise::Repair>::value,
7645 typename std::enable_if<
7646 std::is_same<T, Settings::Processing::Filters::Noise::Repair::Enabled>::value,
7655 typename std::enable_if<
7656 std::is_same<T, Settings::Processing::Filters::Noise::Suppression>::value,
7660 return m_suppression;
7665 typename std::enable_if<
7666 std::is_same<T, Settings::Processing::Filters::Noise::Suppression::Enabled>::value,
7673 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
7679 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
7685 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
7688 return m_suppression;
7692 template<
typename F>
7701 template<
typename F>
7725 void setFromString(
const std::string &value);
7727 void setFromString(
const std::string &fullPath,
const std::string &value);
7729 std::string getString(
const std::string &fullPath)
const;
7735 friend struct DataModel::Detail::Befriend<
Noise>;
7748 static constexpr const char *path{
"Processing/Filters/Outlier" };
7751 static constexpr const char *name{
"Outlier" };
7754 static constexpr const char *description{
7755 R
"description(Contains a filter that removes points with large Euclidean distance to neighboring points.)description"
7768 static constexpr const char *path{
"Processing/Filters/Outlier/Removal" };
7771 static constexpr const char *name{
"Removal" };
7774 static constexpr const char *description{
7775 R
"description(Discard point if Euclidean distance to neighboring points is above a threshold.)description"
7788 static constexpr const char *path{
"Processing/Filters/Outlier/Removal/Enabled" };
7791 static constexpr const char *name{
"Enabled" };
7794 static constexpr const char *description{
7795 R
"description(Enable or disable the outlier filter.)description"
7806 return {
false,
true };
7835 return m_opt == other.m_opt;
7841 return m_opt != other.m_opt;
7851 void setFromString(
const std::string &value);
7853 Zivid::DataModel::Detail::Optional<bool> m_opt;
7855 friend struct DataModel::Detail::Befriend<
Enabled>;
7868 static constexpr const char *path{
"Processing/Filters/Outlier/Removal/Threshold" };
7871 static constexpr const char *name{
"Threshold" };
7874 static constexpr const char *description{
7875 R
"description(Discard point if Euclidean distance to neighboring points is above the given value.)description"
7884 return { 0.0, 100.0 };
7892 : m_opt{ verifyValue(value) }
7913 return m_opt == other.m_opt;
7919 return m_opt != other.m_opt;
7925 return m_opt < other.m_opt;
7931 return m_opt > other.m_opt;
7937 return m_opt <= other.m_opt;
7943 return m_opt >= other.m_opt;
7953 void setFromString(
const std::string &value);
7955 constexpr ValueType
static verifyValue(
const ValueType &value)
7957 return validRange().isInRange(value)
7959 :
throw std::out_of_range{
"Threshold{ " + std::to_string(value)
7960 +
" } is not in range ["
7961 + std::to_string(validRange().min()) +
", "
7962 + std::to_string(validRange().max()) +
"]" };
7965 Zivid::DataModel::Detail::Optional<double> m_opt;
7967 friend struct DataModel::Detail::Befriend<
Threshold>;
7992 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
7993 typename std::enable_if<
7994 Zivid::Detail::TypeTraits::
7995 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
7998 template<typename... Args>
8002 using namespace Zivid::Detail::TypeTraits;
8005 AllArgsDecayedAreUnique<Args...>::value,
8006 "Found duplicate types among the arguments passed to Removal(...). "
8007 "Types should be listed at most once.");
8009 set(std::forward<Args>(args)...);
8024 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
8026 template<typename... Args>
8030 using namespace Zivid::Detail::TypeTraits;
8032 using AllArgsAreDescendantNodes =
8033 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8035 AllArgsAreDescendantNodes::value,
8036 "All arguments passed to set(...) must be descendant nodes.");
8039 AllArgsDecayedAreUnique<Args...>::value,
8040 "Found duplicate types among the arguments passed to set(...). "
8041 "Types should be listed at most once.");
8043 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
8059 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
8061 template<typename... Args>
8065 using namespace Zivid::Detail::TypeTraits;
8067 using AllArgsAreDescendantNodes =
8068 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8070 AllArgsAreDescendantNodes::value,
8071 "All arguments passed to copyWith(...) must be descendant nodes.");
8074 AllArgsDecayedAreUnique<Args...>::value,
8075 "Found duplicate types among the arguments passed to copyWith(...). "
8076 "Types should be listed at most once.");
8079 copy.
set(std::forward<Args>(args)...);
8117 m_threshold = value;
8123 typename std::enable_if<
8124 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
8133 typename std::enable_if<
8134 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
8141 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
8147 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
8154 template<
typename F>
8162 template<
typename F>
8185 void setFromString(
const std::string &value);
8187 void setFromString(
const std::string &fullPath,
const std::string &value);
8189 std::string getString(
const std::string &fullPath)
const;
8194 friend struct DataModel::Detail::Befriend<
Removal>;
8221 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
8222 typename std::enable_if<
8223 Zivid::Detail::TypeTraits::
8224 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
8227 template<typename... Args>
8231 using namespace Zivid::Detail::TypeTraits;
8234 AllArgsDecayedAreUnique<Args...>::value,
8235 "Found duplicate types among the arguments passed to Outlier(...). "
8236 "Types should be listed at most once.");
8238 set(std::forward<Args>(args)...);
8254 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
8256 template<typename... Args>
8260 using namespace Zivid::Detail::TypeTraits;
8262 using AllArgsAreDescendantNodes =
8263 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8265 AllArgsAreDescendantNodes::value,
8266 "All arguments passed to set(...) must be descendant nodes.");
8269 AllArgsDecayedAreUnique<Args...>::value,
8270 "Found duplicate types among the arguments passed to set(...). "
8271 "Types should be listed at most once.");
8273 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
8290 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
8292 template<typename... Args>
8296 using namespace Zivid::Detail::TypeTraits;
8298 using AllArgsAreDescendantNodes =
8299 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8301 AllArgsAreDescendantNodes::value,
8302 "All arguments passed to copyWith(...) must be descendant nodes.");
8305 AllArgsDecayedAreUnique<Args...>::value,
8306 "Found duplicate types among the arguments passed to copyWith(...). "
8307 "Types should be listed at most once.");
8310 copy.
set(std::forward<Args>(args)...);
8336 m_removal.
set(value);
8343 m_removal.
set(value);
8349 typename std::enable_if<
8350 std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
8359 typename std::enable_if<
8360 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
8369 typename std::enable_if<
8370 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
8377 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
8384 template<
typename F>
8391 template<
typename F>
8413 void setFromString(
const std::string &value);
8415 void setFromString(
const std::string &fullPath,
const std::string &value);
8417 std::string getString(
const std::string &fullPath)
const;
8421 friend struct DataModel::Detail::Befriend<
Outlier>;
8434 static constexpr const char *path{
"Processing/Filters/Reflection" };
8437 static constexpr const char *name{
"Reflection" };
8440 static constexpr const char *description{
8441 R
"description(Contains a filter that removes points likely introduced by reflections (useful for shiny materials).)description"
8454 static constexpr const char *path{
"Processing/Filters/Reflection/Removal" };
8457 static constexpr const char *name{
"Removal" };
8460 static constexpr const char *description{
8461 R
"description(Discard points likely introduced by reflections (useful for shiny materials).)description"
8474 static constexpr const char *path{
"Processing/Filters/Reflection/Removal/Enabled" };
8477 static constexpr const char *name{
"Enabled" };
8480 static constexpr const char *description{
8481 R
"description(Enable or disable the reflection filter. Note that this filter is computationally intensive and may affect the frame rate.)description"
8492 return {
false,
true };
8521 return m_opt == other.m_opt;
8527 return m_opt != other.m_opt;
8537 void setFromString(
const std::string &value);
8539 Zivid::DataModel::Detail::Optional<bool> m_opt;
8541 friend struct DataModel::Detail::Befriend<
Enabled>;
8561 static constexpr const char *path{
"Processing/Filters/Reflection/Removal/Mode" };
8564 static constexpr const char *name{
"Mode" };
8567 static constexpr const char *description{
8568 R
"description(The reflection filter has two modes: Local and Global. Local mode preserves more 3D data
8569on thinner objects, generally removes more reflection artifacts and processes faster than
8570the Global filter. The Global filter is generally better at removing outlier points in
8571the point cloud. It is advised to use the Outlier filter and Cluster filter together with the
8572Local Reflection filter.
8574Global mode was introduced in SDK 1.0 and Local mode was introduced in SDK 2.7.
8590 return { ValueType::global, ValueType::local };
8598 : m_opt{ verifyValue(value) }
8625 return m_opt == other.m_opt;
8631 return m_opt != other.m_opt;
8641 void setFromString(
const std::string &value);
8643 constexpr ValueType
static verifyValue(
const ValueType &value)
8645 return value == ValueType::global || value == ValueType::local
8647 :
throw std::invalid_argument{
8648 "Invalid value: Mode{ "
8650 static_cast<std::underlying_type<ValueType>::type
>(value))
8655 Zivid::DataModel::Detail::Optional<ValueType> m_opt;
8657 friend struct DataModel::Detail::Befriend<
Mode>;
8682 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
8683 typename std::enable_if<
8684 Zivid::Detail::TypeTraits::
8685 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
8688 template<typename... Args>
8692 using namespace Zivid::Detail::TypeTraits;
8695 AllArgsDecayedAreUnique<Args...>::value,
8696 "Found duplicate types among the arguments passed to Removal(...). "
8697 "Types should be listed at most once.");
8699 set(std::forward<Args>(args)...);
8714 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
8716 template<typename... Args>
8720 using namespace Zivid::Detail::TypeTraits;
8722 using AllArgsAreDescendantNodes =
8723 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8725 AllArgsAreDescendantNodes::value,
8726 "All arguments passed to set(...) must be descendant nodes.");
8729 AllArgsDecayedAreUnique<Args...>::value,
8730 "Found duplicate types among the arguments passed to set(...). "
8731 "Types should be listed at most once.");
8733 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
8749 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
8751 template<typename... Args>
8755 using namespace Zivid::Detail::TypeTraits;
8757 using AllArgsAreDescendantNodes =
8758 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8760 AllArgsAreDescendantNodes::value,
8761 "All arguments passed to copyWith(...) must be descendant nodes.");
8764 AllArgsDecayedAreUnique<Args...>::value,
8765 "Found duplicate types among the arguments passed to copyWith(...). "
8766 "Types should be listed at most once.");
8769 copy.
set(std::forward<Args>(args)...);
8813 typename std::enable_if<
8814 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
8823 typename std::enable_if<
8824 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Mode>::value,
8831 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
8837 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
8844 template<
typename F>
8852 template<
typename F>
8875 void setFromString(
const std::string &value);
8877 void setFromString(
const std::string &fullPath,
const std::string &value);
8879 std::string getString(
const std::string &fullPath)
const;
8884 friend struct DataModel::Detail::Befriend<
Removal>;
8911 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
8912 typename std::enable_if<
8913 Zivid::Detail::TypeTraits::
8914 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
8917 template<typename... Args>
8921 using namespace Zivid::Detail::TypeTraits;
8924 AllArgsDecayedAreUnique<Args...>::value,
8925 "Found duplicate types among the arguments passed to Reflection(...). "
8926 "Types should be listed at most once.");
8928 set(std::forward<Args>(args)...);
8944 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
8946 template<typename... Args>
8950 using namespace Zivid::Detail::TypeTraits;
8952 using AllArgsAreDescendantNodes =
8953 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8955 AllArgsAreDescendantNodes::value,
8956 "All arguments passed to set(...) must be descendant nodes.");
8959 AllArgsDecayedAreUnique<Args...>::value,
8960 "Found duplicate types among the arguments passed to set(...). "
8961 "Types should be listed at most once.");
8963 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
8980 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
8982 template<typename... Args>
8986 using namespace Zivid::Detail::TypeTraits;
8988 using AllArgsAreDescendantNodes =
8989 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8991 AllArgsAreDescendantNodes::value,
8992 "All arguments passed to copyWith(...) must be descendant nodes.");
8995 AllArgsDecayedAreUnique<Args...>::value,
8996 "Found duplicate types among the arguments passed to copyWith(...). "
8997 "Types should be listed at most once.");
9000 copy.
set(std::forward<Args>(args)...);
9026 m_removal.
set(value);
9033 m_removal.
set(value);
9039 typename std::enable_if<
9040 std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
9049 typename std::enable_if<
9050 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
9059 typename std::enable_if<
9060 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Mode>::value,
9067 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
9074 template<
typename F>
9081 template<
typename F>
9103 void setFromString(
const std::string &value);
9105 void setFromString(
const std::string &fullPath,
const std::string &value);
9107 std::string getString(
const std::string &fullPath)
const;
9111 friend struct DataModel::Detail::Befriend<
Reflection>;
9124 static constexpr const char *path{
"Processing/Filters/Smoothing" };
9127 static constexpr const char *name{
"Smoothing" };
9130 static constexpr const char *description{ R
"description(Smoothing filters.)description" };
9142 static constexpr const char *path{
"Processing/Filters/Smoothing/Gaussian" };
9145 static constexpr const char *name{
"Gaussian" };
9148 static constexpr const char *description{
9149 R
"description(Gaussian smoothing of the point cloud.)description"
9162 static constexpr const char *path{
"Processing/Filters/Smoothing/Gaussian/Enabled" };
9165 static constexpr const char *name{
"Enabled" };
9168 static constexpr const char *description{
9169 R
"description(Enable or disable the smoothing filter.)description"
9180 return {
false,
true };
9209 return m_opt == other.m_opt;
9215 return m_opt != other.m_opt;
9225 void setFromString(
const std::string &value);
9227 Zivid::DataModel::Detail::Optional<bool> m_opt;
9229 friend struct DataModel::Detail::Befriend<
Enabled>;
9242 static constexpr const char *path{
"Processing/Filters/Smoothing/Gaussian/Sigma" };
9245 static constexpr const char *name{
"Sigma" };
9248 static constexpr const char *description{
9249 R
"description(Higher values result in smoother point clouds (Standard deviation of the filter coefficients).)description"
9266 : m_opt{ verifyValue(value) }
9287 return m_opt == other.m_opt;
9293 return m_opt != other.m_opt;
9299 return m_opt < other.m_opt;
9305 return m_opt > other.m_opt;
9311 return m_opt <= other.m_opt;
9317 return m_opt >= other.m_opt;
9327 void setFromString(
const std::string &value);
9329 constexpr ValueType
static verifyValue(
const ValueType &value)
9331 return validRange().isInRange(value)
9333 :
throw std::out_of_range{
"Sigma{ " + std::to_string(value)
9334 +
" } is not in range ["
9335 + std::to_string(validRange().min()) +
", "
9336 + std::to_string(validRange().max()) +
"]" };
9339 Zivid::DataModel::Detail::Optional<double> m_opt;
9341 friend struct DataModel::Detail::Befriend<
Sigma>;
9366 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
9367 typename std::enable_if<
9368 Zivid::Detail::TypeTraits::
9369 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
9372 template<typename... Args>
9376 using namespace Zivid::Detail::TypeTraits;
9379 AllArgsDecayedAreUnique<Args...>::value,
9380 "Found duplicate types among the arguments passed to Gaussian(...). "
9381 "Types should be listed at most once.");
9383 set(std::forward<Args>(args)...);
9398 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
9400 template<typename... Args>
9404 using namespace Zivid::Detail::TypeTraits;
9406 using AllArgsAreDescendantNodes =
9407 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9409 AllArgsAreDescendantNodes::value,
9410 "All arguments passed to set(...) must be descendant nodes.");
9413 AllArgsDecayedAreUnique<Args...>::value,
9414 "Found duplicate types among the arguments passed to set(...). "
9415 "Types should be listed at most once.");
9417 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
9433 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
9435 template<typename... Args>
9439 using namespace Zivid::Detail::TypeTraits;
9441 using AllArgsAreDescendantNodes =
9442 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9444 AllArgsAreDescendantNodes::value,
9445 "All arguments passed to copyWith(...) must be descendant nodes.");
9448 AllArgsDecayedAreUnique<Args...>::value,
9449 "Found duplicate types among the arguments passed to copyWith(...). "
9450 "Types should be listed at most once.");
9453 copy.
set(std::forward<Args>(args)...);
9497 typename std::enable_if<
9498 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
9507 typename std::enable_if<
9508 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
9515 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
9521 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
9528 template<
typename F>
9536 template<
typename F>
9559 void setFromString(
const std::string &value);
9561 void setFromString(
const std::string &fullPath,
const std::string &value);
9563 std::string getString(
const std::string &fullPath)
const;
9568 friend struct DataModel::Detail::Befriend<
Gaussian>;
9595 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
9596 typename std::enable_if<
9597 Zivid::Detail::TypeTraits::
9598 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
9601 template<typename... Args>
9605 using namespace Zivid::Detail::TypeTraits;
9608 AllArgsDecayedAreUnique<Args...>::value,
9609 "Found duplicate types among the arguments passed to Smoothing(...). "
9610 "Types should be listed at most once.");
9612 set(std::forward<Args>(args)...);
9628 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
9630 template<typename... Args>
9634 using namespace Zivid::Detail::TypeTraits;
9636 using AllArgsAreDescendantNodes =
9637 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9639 AllArgsAreDescendantNodes::value,
9640 "All arguments passed to set(...) must be descendant nodes.");
9643 AllArgsDecayedAreUnique<Args...>::value,
9644 "Found duplicate types among the arguments passed to set(...). "
9645 "Types should be listed at most once.");
9647 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
9664 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
9666 template<typename... Args>
9670 using namespace Zivid::Detail::TypeTraits;
9672 using AllArgsAreDescendantNodes =
9673 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9675 AllArgsAreDescendantNodes::value,
9676 "All arguments passed to copyWith(...) must be descendant nodes.");
9679 AllArgsDecayedAreUnique<Args...>::value,
9680 "Found duplicate types among the arguments passed to copyWith(...). "
9681 "Types should be listed at most once.");
9684 copy.
set(std::forward<Args>(args)...);
9710 m_gaussian.
set(value);
9717 m_gaussian.
set(value);
9723 typename std::enable_if<
9724 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
9733 typename std::enable_if<
9734 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
9743 typename std::enable_if<
9744 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
9751 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
9758 template<
typename F>
9765 template<
typename F>
9787 void setFromString(
const std::string &value);
9789 void setFromString(
const std::string &fullPath,
const std::string &value);
9791 std::string getString(
const std::string &fullPath)
const;
9795 friend struct DataModel::Detail::Befriend<
Smoothing>;
9892 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
9893 typename std::enable_if<
9894 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
9898 template<typename... Args>
9902 using namespace Zivid::Detail::TypeTraits;
9905 AllArgsDecayedAreUnique<Args...>::value,
9906 "Found duplicate types among the arguments passed to Filters(...). "
9907 "Types should be listed at most once.");
9909 set(std::forward<Args>(args)...);
9960 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
9962 template<typename... Args>
9966 using namespace Zivid::Detail::TypeTraits;
9968 using AllArgsAreDescendantNodes =
9969 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9971 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
9974 AllArgsDecayedAreUnique<Args...>::value,
9975 "Found duplicate types among the arguments passed to set(...). "
9976 "Types should be listed at most once.");
9978 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
10030 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
10032 template<typename... Args>
10036 using namespace Zivid::Detail::TypeTraits;
10038 using AllArgsAreDescendantNodes =
10039 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
10041 AllArgsAreDescendantNodes::value,
10042 "All arguments passed to copyWith(...) must be descendant nodes.");
10045 AllArgsDecayedAreUnique<Args...>::value,
10046 "Found duplicate types among the arguments passed to copyWith(...). "
10047 "Types should be listed at most once.");
10049 auto copy{ *
this };
10050 copy.
set(std::forward<Args>(args)...);
10076 m_cluster.
set(value);
10083 m_cluster.
set(value);
10090 m_cluster.
set(value);
10097 m_cluster.
set(value);
10104 return m_experimental;
10110 return m_experimental;
10116 m_experimental = value;
10123 m_experimental.
set(value);
10130 m_experimental.
set(value);
10137 m_experimental.
set(value);
10144 m_experimental.
set(value);
10151 m_experimental.
set(value);
10158 m_experimental.
set(value);
10165 m_experimental.
set(value);
10238 m_noise.
set(value);
10245 m_noise.
set(value);
10252 m_noise.
set(value);
10259 m_noise.
set(value);
10266 m_noise.
set(value);
10273 m_noise.
set(value);
10280 m_noise.
set(value);
10306 m_outlier.
set(value);
10313 m_outlier.
set(value);
10320 m_outlier.
set(value);
10327 return m_reflection;
10333 return m_reflection;
10339 m_reflection = value;
10346 m_reflection.
set(value);
10353 m_reflection.
set(value);
10360 m_reflection.
set(value);
10367 return m_smoothing;
10373 return m_smoothing;
10379 m_smoothing = value;
10386 m_smoothing.
set(value);
10393 m_smoothing.
set(value);
10400 m_smoothing.
set(value);
10406 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster>::value,
int>::type =
10415 typename std::enable_if<
10416 std::is_same<T, Settings::Processing::Filters::Cluster::Removal>::value,
10425 typename std::enable_if<
10426 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
10435 typename std::enable_if<
10436 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::value,
10445 typename std::enable_if<
10446 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
10455 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Experimental>::value,
int>::
10459 return m_experimental;
10464 typename std::enable_if<
10465 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
10474 typename std::enable_if<
10475 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::
10480 return m_experimental
10486 typename std::enable_if<
10494 return m_experimental
10500 typename std::enable_if<
10508 return m_experimental
10514 typename std::enable_if<
10515 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::
10520 return m_experimental
10526 typename std::enable_if<
10533 return m_experimental
10539 typename std::enable_if<
10546 return m_experimental
10552 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole>::value,
int>::type = 0>
10560 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole::Repair>::value,
int>::
10569 typename std::enable_if<
10570 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Enabled>::value,
10579 typename std::enable_if<
10580 std::is_same<T, Settings::Processing::Filters::Hole::Repair::HoleSize>::value,
10589 typename std::enable_if<
10590 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Strictness>::value,
10599 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise>::value,
int>::type =
10609 enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
int>::type = 0>
10617 typename std::enable_if<
10618 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
10627 typename std::enable_if<
10628 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
10637 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Repair>::value,
int>::
10646 typename std::enable_if<
10647 std::is_same<T, Settings::Processing::Filters::Noise::Repair::Enabled>::value,
10656 typename std::enable_if<
10657 std::is_same<T, Settings::Processing::Filters::Noise::Suppression>::value,
10666 typename std::enable_if<
10667 std::is_same<T, Settings::Processing::Filters::Noise::Suppression::Enabled>::value,
10676 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier>::value,
int>::type =
10685 typename std::enable_if<
10686 std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
10695 typename std::enable_if<
10696 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
10705 typename std::enable_if<
10706 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
10715 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection>::value,
int>::
10719 return m_reflection;
10724 typename std::enable_if<
10725 std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
10734 typename std::enable_if<
10735 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
10744 typename std::enable_if<
10745 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Mode>::value,
10754 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing>::value,
int>::
10758 return m_smoothing;
10763 typename std::enable_if<
10764 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
10773 typename std::enable_if<
10774 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
10783 typename std::enable_if<
10784 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
10791 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
10797 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
10800 return m_experimental;
10803 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
10809 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
10815 template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
10821 template<size_t i, typename std::enable_if<i == 5, int>::type = 0>
10824 return m_reflection;
10827 template<size_t i, typename std::enable_if<i == 6, int>::type = 0>
10830 return m_smoothing;
10834 template<
typename F>
10847 template<
typename F>
10871 return stream << value.
toString();
10875 void setFromString(
const std::string &value);
10877 void setFromString(
const std::string &fullPath,
const std::string &value);
10879 std::string getString(
const std::string &fullPath)
const;
10882 Experimental m_experimental;
10886 Reflection m_reflection;
10889 friend struct DataModel::Detail::Befriend<
Filters>;
10903 static constexpr const char *path{
"Processing/Resampling" };
10906 static constexpr const char *name{
"Resampling" };
10909 static constexpr const char *description{
10910 R
"description(Settings for changing the output resolution of the point cloud.
10946 static constexpr const char *path{
"Processing/Resampling/Mode" };
10949 static constexpr const char *name{
"Mode" };
10952 static constexpr const char *description{
10953 R
"description(Setting for upsampling or downsampling the point cloud data by some factor. This operation
10954is performed after all other processing has been completed.
10956Downsampling is used to reduce the number of points in the point cloud. This is done by
10957combining each 2x2 or 4x4 group of pixels in the original point cloud into one pixel in
10958a new point cloud. This downsample functionality is identical to the downsample method
10959on the PointCloud class. The averaging process reduces noise in the point cloud, but it
10960will not improve capture speed. To improve capture speed, consider using the subsampling
10961modes found in Settings/Sampling/Pixel.
10963Upsampling is used to increase the number of points in the point cloud. It is not possible
10964to upsample beyond the full resolution of the camera, so upsampling may only be used in
10965combination with the subsampling modes found in Settings/Sampling/Pixel. For example, one may
10966combine blueSubsample2x2 with upsample2x2 to obtain a point cloud that matches a full
10967resolution 2D capture, while retaining the speed benefits of capturing the point cloud with
10968blueSubsample2x2. Upsampling is achieved by expanding pixels in the original point cloud into
10969groups of 2x2 or 4x4 pixels in a new point cloud. Where possible, values are filled at the
10970new points based on an interpolation of the surrounding original points. The points in the
10971new point cloud that correspond to points in the original point cloud are left unchanged.
10972Note that upsampling will lead to four (upsample2x2) or sixteen (upsample4x4) times as many
10973pixels in the point cloud compared to no upsampling, so users should be aware of increased
10974computational cost related to copying and analyzing this data.
10996 return { ValueType::disabled,
10997 ValueType::downsample2x2,
10998 ValueType::downsample4x4,
10999 ValueType::upsample2x2,
11000 ValueType::upsample4x4 };
11008 : m_opt{ verifyValue(value) }
11035 return m_opt == other.m_opt;
11041 return m_opt != other.m_opt;
11047 return stream << value.
toString();
11051 void setFromString(
const std::string &value);
11053 constexpr ValueType
static verifyValue(
const ValueType &value)
11055 return value == ValueType::disabled || value == ValueType::downsample2x2
11056 || value == ValueType::downsample4x4 || value == ValueType::upsample2x2
11057 || value == ValueType::upsample4x4
11059 :
throw std::invalid_argument{
11060 "Invalid value: Mode{ "
11061 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value))
11066 Zivid::DataModel::Detail::Optional<ValueType> m_opt;
11068 friend struct DataModel::Detail::Befriend<
Mode>;
11090 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
11091 typename std::enable_if<
11092 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
11096 template<typename... Args>
11100 using namespace Zivid::Detail::TypeTraits;
11103 AllArgsDecayedAreUnique<Args...>::value,
11104 "Found duplicate types among the arguments passed to Resampling(...). "
11105 "Types should be listed at most once.");
11107 set(std::forward<Args>(args)...);
11121 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
11123 template<typename... Args>
11127 using namespace Zivid::Detail::TypeTraits;
11129 using AllArgsAreDescendantNodes =
11130 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
11132 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
11135 AllArgsDecayedAreUnique<Args...>::value,
11136 "Found duplicate types among the arguments passed to set(...). "
11137 "Types should be listed at most once.");
11139 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
11154 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
11156 template<typename... Args>
11160 using namespace Zivid::Detail::TypeTraits;
11162 using AllArgsAreDescendantNodes =
11163 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
11165 AllArgsAreDescendantNodes::value,
11166 "All arguments passed to copyWith(...) must be descendant nodes.");
11169 AllArgsDecayedAreUnique<Args...>::value,
11170 "Found duplicate types among the arguments passed to copyWith(...). "
11171 "Types should be listed at most once.");
11173 auto copy{ *
this };
11174 copy.
set(std::forward<Args>(args)...);
11199 typename std::enable_if<std::is_same<T, Settings::Processing::Resampling::Mode>::value,
int>::type =
11206 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
11213 template<
typename F>
11220 template<
typename F>
11238 return stream << value.
toString();
11242 void setFromString(
const std::string &value);
11244 void setFromString(
const std::string &fullPath,
const std::string &value);
11246 std::string getString(
const std::string &fullPath)
const;
11250 friend struct DataModel::Detail::Befriend<
Resampling>;
11369 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
11370 typename std::enable_if<
11371 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
11375 template<typename... Args>
11379 using namespace Zivid::Detail::TypeTraits;
11382 AllArgsDecayedAreUnique<Args...>::value,
11383 "Found duplicate types among the arguments passed to Processing(...). "
11384 "Types should be listed at most once.");
11386 set(std::forward<Args>(args)...);
11448 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
11450 template<typename... Args>
11454 using namespace Zivid::Detail::TypeTraits;
11456 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
11458 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
11461 AllArgsDecayedAreUnique<Args...>::value,
11462 "Found duplicate types among the arguments passed to set(...). "
11463 "Types should be listed at most once.");
11465 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
11528 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
11530 template<typename... Args>
11534 using namespace Zivid::Detail::TypeTraits;
11536 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
11538 AllArgsAreDescendantNodes::value,
11539 "All arguments passed to copyWith(...) must be descendant nodes.");
11542 AllArgsDecayedAreUnique<Args...>::value,
11543 "Found duplicate types among the arguments passed to copyWith(...). "
11544 "Types should be listed at most once.");
11546 auto copy{ *
this };
11547 copy.
set(std::forward<Args>(args)...);
11573 m_color.
set(value);
11580 m_color.
set(value);
11587 m_color.
set(value);
11594 m_color.
set(value);
11601 m_color.
set(value);
11608 m_color.
set(value);
11615 m_color.
set(value);
11641 m_filters.
set(value);
11648 m_filters.
set(value);
11655 m_filters.
set(value);
11662 m_filters.
set(value);
11669 m_filters.
set(value);
11676 m_filters.
set(value);
11683 m_filters.
set(value);
11690 m_filters.
set(value);
11697 m_filters.
set(value);
11704 m_filters.
set(value);
11711 m_filters.
set(value);
11718 m_filters.
set(value);
11725 m_filters.
set(value);
11732 m_filters.
set(value);
11739 m_filters.
set(value);
11746 m_filters.
set(value);
11753 m_filters.
set(value);
11760 m_filters.
set(value);
11767 m_filters.
set(value);
11774 m_filters.
set(value);
11781 m_filters.
set(value);
11788 m_filters.
set(value);
11795 m_filters.
set(value);
11802 m_filters.
set(value);
11809 m_filters.
set(value);
11816 m_filters.
set(value);
11823 m_filters.
set(value);
11830 m_filters.
set(value);
11837 m_filters.
set(value);
11844 m_filters.
set(value);
11851 m_filters.
set(value);
11858 m_filters.
set(value);
11865 m_filters.
set(value);
11872 m_filters.
set(value);
11879 m_filters.
set(value);
11886 m_filters.
set(value);
11893 m_filters.
set(value);
11900 m_filters.
set(value);
11907 return m_resampling;
11913 return m_resampling;
11919 m_resampling = value;
11926 m_resampling.
set(value);
11932 typename std::enable_if<std::is_same<T, Settings::Processing::Color>::value,
int>::type = 0>
11940 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance>::value,
int>::type = 0>
11948 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
int>::type =
11957 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
int>::
11966 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::type =
11975 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental>::value,
int>::type =
11984 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
int>::
11993 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Gamma>::value,
int>::type = 0>
12001 typename std::enable_if<std::is_same<T, Settings::Processing::Filters>::value,
int>::type = 0>
12009 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster>::value,
int>::type = 0>
12017 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster::Removal>::value,
int>::
12026 typename std::enable_if<
12027 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
12036 typename std::enable_if<
12037 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::value,
12046 typename std::enable_if<
12047 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
12056 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Experimental>::value,
int>::
12065 typename std::enable_if<
12066 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
12075 typename std::enable_if<
12076 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::value,
12085 typename std::enable_if<
12098 typename std::enable_if<
12111 typename std::enable_if<
12112 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::value,
12121 typename std::enable_if<
12122 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled>::
12133 typename std::enable_if<
12146 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole>::value,
int>::type = 0>
12154 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole::Repair>::value,
int>::
12163 typename std::enable_if<
12164 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Enabled>::value,
12173 typename std::enable_if<
12174 std::is_same<T, Settings::Processing::Filters::Hole::Repair::HoleSize>::value,
12183 typename std::enable_if<
12184 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Strictness>::value,
12193 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise>::value,
int>::type = 0>
12201 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
int>::
12210 typename std::enable_if<
12211 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
12220 typename std::enable_if<
12221 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
12230 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Repair>::value,
int>::
12239 typename std::enable_if<
12240 std::is_same<T, Settings::Processing::Filters::Noise::Repair::Enabled>::value,
12250 enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Suppression>::value,
int>::type = 0>
12258 typename std::enable_if<
12259 std::is_same<T, Settings::Processing::Filters::Noise::Suppression::Enabled>::value,
12268 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier>::value,
int>::type = 0>
12276 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
int>::
12285 typename std::enable_if<
12286 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
12295 typename std::enable_if<
12296 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
12305 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection>::value,
int>::type =
12314 typename std::enable_if<
12315 std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
12324 typename std::enable_if<
12325 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
12334 typename std::enable_if<
12335 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Mode>::value,
12344 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing>::value,
int>::type =
12353 typename std::enable_if<
12354 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
12363 typename std::enable_if<
12364 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
12373 typename std::enable_if<
12374 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
12383 typename std::enable_if<std::is_same<T, Settings::Processing::Resampling>::value,
int>::type = 0>
12386 return m_resampling;
12391 typename std::enable_if<std::is_same<T, Settings::Processing::Resampling::Mode>::value,
int>::type = 0>
12397 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
12403 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
12409 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
12412 return m_resampling;
12416 template<
typename F>
12425 template<
typename F>
12445 return stream << value.
toString();
12449 void setFromString(
const std::string &value);
12451 void setFromString(
const std::string &fullPath,
const std::string &value);
12453 std::string getString(
const std::string &fullPath)
const;
12459 friend struct DataModel::Detail::Befriend<
Processing>;
12473 static constexpr const char *path{
"RegionOfInterest" };
12476 static constexpr const char *name{
"RegionOfInterest" };
12479 static constexpr const char *description{ R
"description(Removes points outside the region of interest.
12507 static constexpr const char *path{
"RegionOfInterest/Box" };
12510 static constexpr const char *name{
"Box" };
12513 static constexpr const char *description{
12514 R
"description(Removes points outside the given three-dimensional box.
12516Using this feature may significantly speed up acquisition and processing time, because
12517one can avoid acquiring and processing data that is guaranteed to fall outside of the
12518region of interest. The degree of speed-up depends on the size and shape of the box.
12519Generally, a smaller box yields a greater speed-up.
12521The box is defined by three points: O, A and B. These points define two vectors,
12522OA that goes from PointO to PointA, and OB that goes from PointO to PointB.
12523This gives 4 points O, A, B and (O + OA + OB), that together form a
12524parallelogram in 3D.
12526Two extents can be provided, to extrude the parallelogram along the surface
12527normal vector of the parallelogram plane. This creates a 3D volume (parallelepiped).
12528The surface normal vector is defined by the cross product OA x OB.
12542 static constexpr const char *path{
"RegionOfInterest/Box/Enabled" };
12545 static constexpr const char *name{
"Enabled" };
12548 static constexpr const char *description{
12549 R
"description(Enable or disable box filter.)description"
12560 return {
false,
true };
12589 return m_opt == other.m_opt;
12595 return m_opt != other.m_opt;
12601 return stream << value.
toString();
12605 void setFromString(
const std::string &value);
12607 Zivid::DataModel::Detail::Optional<bool> m_opt;
12609 friend struct DataModel::Detail::Befriend<
Enabled>;
12622 static constexpr const char *path{
"RegionOfInterest/Box/Extents" };
12625 static constexpr const char *name{
"Extents" };
12628 static constexpr const char *description{
12629 R
"description(Two points on the normal describing the direction and distance from the plane from which the normal is derived.)description"
12659 explicit constexpr Extents(
double minValue,
double maxValue)
12666 return m_opt == other.m_opt;
12672 return m_opt != other.m_opt;
12678 return stream << value.
toString();
12682 void setFromString(
const std::string &value);
12684 Zivid::DataModel::Detail::Optional<Zivid::Range<double>> m_opt;
12686 friend struct DataModel::Detail::Befriend<
Extents>;
12699 static constexpr const char *path{
"RegionOfInterest/Box/PointA" };
12702 static constexpr const char *name{
"PointA" };
12705 static constexpr const char *description{
12706 R
"description(A point such that the vector from PointO to PointA describes the first edge of the parallelogram.)description"
12736 explicit constexpr PointA(
float x,
float y,
float z)
12743 return m_opt == other.m_opt;
12749 return m_opt != other.m_opt;
12755 return stream << value.
toString();
12759 void setFromString(
const std::string &value);
12761 Zivid::DataModel::Detail::Optional<Zivid::PointXYZ> m_opt;
12763 friend struct DataModel::Detail::Befriend<
PointA>;
12776 static constexpr const char *path{
"RegionOfInterest/Box/PointB" };
12779 static constexpr const char *name{
"PointB" };
12782 static constexpr const char *description{
12783 R
"description(A point such that the vector from PointO to PointB describes the second edge of the parallelogram.)description"
12813 explicit constexpr PointB(
float x,
float y,
float z)
12820 return m_opt == other.m_opt;
12826 return m_opt != other.m_opt;
12832 return stream << value.
toString();
12836 void setFromString(
const std::string &value);
12838 Zivid::DataModel::Detail::Optional<Zivid::PointXYZ> m_opt;
12840 friend struct DataModel::Detail::Befriend<
PointB>;
12853 static constexpr const char *path{
"RegionOfInterest/Box/PointO" };
12856 static constexpr const char *name{
"PointO" };
12859 static constexpr const char *description{
12860 R
"description(The point at the intersection of two adjacent edges defining a parallelogram.)description"
12890 explicit constexpr PointO(
float x,
float y,
float z)
12897 return m_opt == other.m_opt;
12903 return m_opt != other.m_opt;
12909 return stream << value.
toString();
12913 void setFromString(
const std::string &value);
12915 Zivid::DataModel::Detail::Optional<Zivid::PointXYZ> m_opt;
12917 friend struct DataModel::Detail::Befriend<
PointO>;
12948 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
12949 typename std::enable_if<
12950 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
12954 template<typename... Args>
12958 using namespace Zivid::Detail::TypeTraits;
12961 AllArgsDecayedAreUnique<Args...>::value,
12962 "Found duplicate types among the arguments passed to Box(...). "
12963 "Types should be listed at most once.");
12965 set(std::forward<Args>(args)...);
12983 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
12985 template<typename... Args>
12989 using namespace Zivid::Detail::TypeTraits;
12991 using AllArgsAreDescendantNodes =
12992 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
12994 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
12997 AllArgsDecayedAreUnique<Args...>::value,
12998 "Found duplicate types among the arguments passed to set(...). "
12999 "Types should be listed at most once.");
13001 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
13020 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
13022 template<typename... Args>
13026 using namespace Zivid::Detail::TypeTraits;
13028 using AllArgsAreDescendantNodes =
13029 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13031 AllArgsAreDescendantNodes::value,
13032 "All arguments passed to copyWith(...) must be descendant nodes.");
13035 AllArgsDecayedAreUnique<Args...>::value,
13036 "Found duplicate types among the arguments passed to copyWith(...). "
13037 "Types should be listed at most once.");
13039 auto copy{ *
this };
13040 copy.
set(std::forward<Args>(args)...);
13141 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Enabled>::value,
int>::
13150 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Extents>::value,
int>::
13159 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointA>::value,
int>::
13168 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointB>::value,
int>::
13177 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointO>::value,
int>::
13184 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
13190 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
13196 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
13202 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
13208 template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
13215 template<
typename F>
13226 template<
typename F>
13248 return stream << value.
toString();
13252 void setFromString(
const std::string &value);
13254 void setFromString(
const std::string &fullPath,
const std::string &value);
13256 std::string getString(
const std::string &fullPath)
const;
13264 friend struct DataModel::Detail::Befriend<
Box>;
13279 static constexpr const char *path{
"RegionOfInterest/Depth" };
13282 static constexpr const char *name{
"Depth" };
13285 static constexpr const char *description{
13286 R
"description(Removes points that reside outside of a depth range, meaning that their Z coordinate
13287falls above a given maximum or below a given minimum.
13301 static constexpr const char *path{
"RegionOfInterest/Depth/Enabled" };
13304 static constexpr const char *name{
"Enabled" };
13307 static constexpr const char *description{
13308 R
"description(Enable or disable depth filter.)description"
13319 return {
false,
true };
13348 return m_opt == other.m_opt;
13354 return m_opt != other.m_opt;
13360 return stream << value.
toString();
13364 void setFromString(
const std::string &value);
13366 Zivid::DataModel::Detail::Optional<bool> m_opt;
13368 friend struct DataModel::Detail::Befriend<
Enabled>;
13381 static constexpr const char *path{
"RegionOfInterest/Depth/Range" };
13384 static constexpr const char *name{
"Range" };
13387 static constexpr const char *description{
13388 R
"description(Specify the minimum and maximum Z value that will be included.)description"
13418 explicit constexpr Range(
double minValue,
double maxValue)
13425 return m_opt == other.m_opt;
13431 return m_opt != other.m_opt;
13437 return stream << value.
toString();
13441 void setFromString(
const std::string &value);
13443 Zivid::DataModel::Detail::Optional<Zivid::Range<double>> m_opt;
13445 friend struct DataModel::Detail::Befriend<
Range>;
13449 std::tuple<Settings::RegionOfInterest::Depth::Enabled, Settings::RegionOfInterest::Depth::Range>;
13469 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
13470 typename std::enable_if<
13471 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
13475 template<typename... Args>
13479 using namespace Zivid::Detail::TypeTraits;
13482 AllArgsDecayedAreUnique<Args...>::value,
13483 "Found duplicate types among the arguments passed to Depth(...). "
13484 "Types should be listed at most once.");
13486 set(std::forward<Args>(args)...);
13501 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
13503 template<typename... Args>
13507 using namespace Zivid::Detail::TypeTraits;
13509 using AllArgsAreDescendantNodes =
13510 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13512 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
13515 AllArgsDecayedAreUnique<Args...>::value,
13516 "Found duplicate types among the arguments passed to set(...). "
13517 "Types should be listed at most once.");
13519 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
13535 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
13537 template<typename... Args>
13541 using namespace Zivid::Detail::TypeTraits;
13543 using AllArgsAreDescendantNodes =
13544 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13546 AllArgsAreDescendantNodes::value,
13547 "All arguments passed to copyWith(...) must be descendant nodes.");
13550 AllArgsDecayedAreUnique<Args...>::value,
13551 "Found duplicate types among the arguments passed to copyWith(...). "
13552 "Types should be listed at most once.");
13554 auto copy{ *
this };
13555 copy.
set(std::forward<Args>(args)...);
13599 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Enabled>::value,
int>::
13608 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Range>::value,
int>::
13615 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
13621 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
13628 template<
typename F>
13636 template<
typename F>
13655 return stream << value.
toString();
13659 void setFromString(
const std::string &value);
13661 void setFromString(
const std::string &fullPath,
const std::string &value);
13663 std::string getString(
const std::string &fullPath)
const;
13668 friend struct DataModel::Detail::Befriend<
Depth>;
13707 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
13708 typename std::enable_if<
13709 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
13713 template<typename... Args>
13717 using namespace Zivid::Detail::TypeTraits;
13720 AllArgsDecayedAreUnique<Args...>::value,
13721 "Found duplicate types among the arguments passed to RegionOfInterest(...). "
13722 "Types should be listed at most once.");
13724 set(std::forward<Args>(args)...);
13746 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
13748 template<typename... Args>
13752 using namespace Zivid::Detail::TypeTraits;
13754 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13756 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
13759 AllArgsDecayedAreUnique<Args...>::value,
13760 "Found duplicate types among the arguments passed to set(...). "
13761 "Types should be listed at most once.");
13763 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
13786 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
13788 template<typename... Args>
13792 using namespace Zivid::Detail::TypeTraits;
13794 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13796 AllArgsAreDescendantNodes::value,
13797 "All arguments passed to copyWith(...) must be descendant nodes.");
13800 AllArgsDecayedAreUnique<Args...>::value,
13801 "Found duplicate types among the arguments passed to copyWith(...). "
13802 "Types should be listed at most once.");
13804 auto copy{ *
this };
13805 copy.
set(std::forward<Args>(args)...);
13885 m_depth.
set(value);
13892 m_depth.
set(value);
13898 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box>::value,
int>::type = 0>
13906 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Enabled>::value,
int>::type =
13915 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Extents>::value,
int>::type =
13924 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointA>::value,
int>::type = 0>
13932 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointB>::value,
int>::type = 0>
13940 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointO>::value,
int>::type = 0>
13948 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth>::value,
int>::type = 0>
13956 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Enabled>::value,
int>::type =
13965 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Range>::value,
int>::type =
13972 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
13978 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
13985 template<
typename F>
13993 template<
typename F>
14012 return stream << value.
toString();
14016 void setFromString(
const std::string &value);
14018 void setFromString(
const std::string &fullPath,
const std::string &value);
14020 std::string getString(
const std::string &fullPath)
const;
14039 static constexpr const char *path{
"Sampling" };
14042 static constexpr const char *name{
"Sampling" };
14045 static constexpr const char *description{ R
"description(Sampling settings.
14062 static constexpr const char *path{
"Sampling/Color" };
14065 static constexpr const char *name{
"Color" };
14068 static constexpr const char *description{
14069 R
"description(Choose how to sample colors for the pointcloud. The `rgb` option gives all
14070colors for a regular Zivid camera. The `disabled` option gives no colors and
14071can allow for faster captures. It is also useful if you want to avoid projecting
14072white light in the subsampling modes under `Sampling::Pixel`.
14088 return { ValueType::rgb, ValueType::disabled };
14096 : m_opt{ verifyValue(value) }
14123 return m_opt == other.m_opt;
14129 return m_opt != other.m_opt;
14135 return stream << value.
toString();
14139 void setFromString(
const std::string &value);
14141 constexpr ValueType
static verifyValue(
const ValueType &value)
14143 return value == ValueType::rgb || value == ValueType::disabled
14145 :
throw std::invalid_argument{
14146 "Invalid value: Color{ "
14147 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value)) +
" }"
14151 Zivid::DataModel::Detail::Optional<ValueType> m_opt;
14153 friend struct DataModel::Detail::Befriend<
Color>;
14174 static constexpr const char *path{
"Sampling/Pixel" };
14177 static constexpr const char *name{
"Pixel" };
14180 static constexpr const char *description{
14181 R
"description(Set whether the full image sensor should be used with white projector light or
14182only specific color channels with corresponding projector light.
14183Using only a specific color channel will subsample pixels and give a
14186Subsampling decreases the capture time, as less data will be captured and processed.
14187Picking a specific color channel can also help reduce noise and effects of ambient light.
14188Projecting blue light will in most cases give better data than red light.
14210 return { ValueType::all,
14211 ValueType::blueSubsample2x2,
14212 ValueType::redSubsample2x2,
14213 ValueType::blueSubsample4x4,
14214 ValueType::redSubsample4x4 };
14222 : m_opt{ verifyValue(value) }
14249 return m_opt == other.m_opt;
14255 return m_opt != other.m_opt;
14261 return stream << value.
toString();
14265 void setFromString(
const std::string &value);
14267 constexpr ValueType
static verifyValue(
const ValueType &value)
14269 return value == ValueType::all || value == ValueType::blueSubsample2x2
14270 || value == ValueType::redSubsample2x2 || value == ValueType::blueSubsample4x4
14271 || value == ValueType::redSubsample4x4
14273 :
throw std::invalid_argument{
14274 "Invalid value: Pixel{ "
14275 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value)) +
" }"
14279 Zivid::DataModel::Detail::Optional<ValueType> m_opt;
14281 friend struct DataModel::Detail::Befriend<
Pixel>;
14284 using Descendants = std::tuple<Settings::Sampling::Color, Settings::Sampling::Pixel>;
14304 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
14305 typename std::enable_if<
14306 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
14310 template<typename... Args>
14314 using namespace Zivid::Detail::TypeTraits;
14317 AllArgsDecayedAreUnique<Args...>::value,
14318 "Found duplicate types among the arguments passed to Sampling(...). "
14319 "Types should be listed at most once.");
14321 set(std::forward<Args>(args)...);
14336 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
14338 template<typename... Args>
14342 using namespace Zivid::Detail::TypeTraits;
14344 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
14346 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
14349 AllArgsDecayedAreUnique<Args...>::value,
14350 "Found duplicate types among the arguments passed to set(...). "
14351 "Types should be listed at most once.");
14353 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
14369 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
14371 template<typename... Args>
14375 using namespace Zivid::Detail::TypeTraits;
14377 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
14379 AllArgsAreDescendantNodes::value,
14380 "All arguments passed to copyWith(...) must be descendant nodes.");
14383 AllArgsDecayedAreUnique<Args...>::value,
14384 "Found duplicate types among the arguments passed to copyWith(...). "
14385 "Types should be listed at most once.");
14387 auto copy{ *
this };
14388 copy.
set(std::forward<Args>(args)...);
14432 typename std::enable_if<std::is_same<T, Settings::Sampling::Color>::value,
int>::type = 0>
14440 typename std::enable_if<std::is_same<T, Settings::Sampling::Pixel>::value,
int>::type = 0>
14446 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
14452 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
14459 template<
typename F>
14467 template<
typename F>
14486 return stream << value.
toString();
14490 void setFromString(
const std::string &value);
14492 void setFromString(
const std::string &fullPath,
const std::string &value);
14494 std::string getString(
const std::string &fullPath)
const;
14499 friend struct DataModel::Detail::Befriend<
Sampling>;
14657 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
14658 typename std::enable_if<
14659 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
14662 template<typename... Args>
14666 using namespace Zivid::Detail::TypeTraits;
14669 AllArgsDecayedAreUnique<Args...>::value,
14670 "Found duplicate types among the arguments passed to Settings(...). "
14671 "Types should be listed at most once.");
14673 set(std::forward<Args>(args)...);
14753 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
14755 template<typename... Args>
14759 using namespace Zivid::Detail::TypeTraits;
14761 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
14763 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
14766 AllArgsDecayedAreUnique<Args...>::value,
14767 "Found duplicate types among the arguments passed to set(...). "
14768 "Types should be listed at most once.");
14770 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
14851 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
14853 template<typename... Args>
14857 using namespace Zivid::Detail::TypeTraits;
14859 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
14861 AllArgsAreDescendantNodes::value,
"All arguments passed to copyWith(...) must be descendant nodes.");
14864 AllArgsDecayedAreUnique<Args...>::value,
14865 "Found duplicate types among the arguments passed to copyWith(...). "
14866 "Types should be listed at most once.");
14868 auto copy{ *
this };
14869 copy.
set(std::forward<Args>(args)...);
14876 return m_acquisitions;
14882 return m_acquisitions;
14888 m_acquisitions = value;
14895 return m_diagnostics;
14901 return m_diagnostics;
14907 m_diagnostics = value;
14914 m_diagnostics.
set(value);
14940 return m_processing;
14946 return m_processing;
14952 m_processing = value;
14959 m_processing.
set(value);
14966 m_processing.
set(value);
14973 m_processing.
set(value);
14980 m_processing.
set(value);
14987 m_processing.
set(value);
14994 m_processing.
set(value);
15001 m_processing.
set(value);
15008 m_processing.
set(value);
15015 m_processing.
set(value);
15022 m_processing.
set(value);
15029 m_processing.
set(value);
15036 m_processing.
set(value);
15043 m_processing.
set(value);
15050 m_processing.
set(value);
15057 m_processing.
set(value);
15064 m_processing.
set(value);
15071 m_processing.
set(value);
15078 m_processing.
set(value);
15085 m_processing.
set(value);
15092 m_processing.
set(value);
15099 m_processing.
set(value);
15106 m_processing.
set(value);
15113 m_processing.
set(value);
15120 m_processing.
set(value);
15127 m_processing.
set(value);
15134 m_processing.
set(value);
15141 m_processing.
set(value);
15148 m_processing.
set(value);
15155 m_processing.
set(value);
15162 m_processing.
set(value);
15169 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 return m_regionOfInterest;
15308 return m_regionOfInterest;
15314 m_regionOfInterest = value;
15321 m_regionOfInterest.
set(value);
15328 m_regionOfInterest.
set(value);
15335 m_regionOfInterest.
set(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);
15396 m_sampling = value;
15403 m_sampling.
set(value);
15410 m_sampling.
set(value);
15414 template<typename T, typename std::enable_if<std::is_same<T, Settings::Acquisitions>::value,
int>::type = 0>
15417 return m_acquisitions;
15420 template<typename T, typename std::enable_if<std::is_same<T, Settings::Diagnostics>::value,
int>::type = 0>
15423 return m_diagnostics;
15428 typename std::enable_if<std::is_same<T, Settings::Diagnostics::Enabled>::value,
int>::type = 0>
15434 template<typename T, typename std::enable_if<std::is_same<T, Settings::Engine>::value,
int>::type = 0>
15440 template<typename T, typename std::enable_if<std::is_same<T, Settings::Processing>::value,
int>::type = 0>
15443 return m_processing;
15448 typename std::enable_if<std::is_same<T, Settings::Processing::Color>::value,
int>::type = 0>
15456 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance>::value,
int>::type = 0>
15464 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
int>::type = 0>
15472 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
int>::type = 0>
15480 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::type = 0>
15488 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental>::value,
int>::type = 0>
15496 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
int>::
15505 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Gamma>::value,
int>::type = 0>
15513 typename std::enable_if<std::is_same<T, Settings::Processing::Filters>::value,
int>::type = 0>
15521 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster>::value,
int>::type = 0>
15529 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster::Removal>::value,
int>::
15538 typename std::enable_if<
15539 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
15548 typename std::enable_if<
15549 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::value,
15558 typename std::enable_if<
15559 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
15568 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Experimental>::value,
int>::type = 0>
15576 typename std::enable_if<
15577 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
15586 typename std::enable_if<
15587 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::value,
15596 typename std::enable_if<
15597 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled>::
15602 return m_processing
15608 typename std::enable_if<
15609 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength>::
15614 return m_processing
15620 typename std::enable_if<
15621 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::value,
15630 typename std::enable_if<
15631 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled>::
15636 return m_processing
15642 typename std::enable_if<
15643 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold>::
15648 return m_processing
15654 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole>::value,
int>::type = 0>
15662 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole::Repair>::value,
int>::type = 0>
15670 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole::Repair::Enabled>::value,
int>::
15680 enable_if<std::is_same<T, Settings::Processing::Filters::Hole::Repair::HoleSize>::value,
int>::type = 0>
15688 typename std::enable_if<
15689 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Strictness>::value,
15698 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise>::value,
int>::type = 0>
15706 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
int>::type =
15715 typename std::enable_if<
15716 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
15725 typename std::enable_if<
15726 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
15735 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Repair>::value,
int>::type =
15745 enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Repair::Enabled>::value,
int>::type = 0>
15753 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Suppression>::value,
int>::
15762 typename std::enable_if<
15763 std::is_same<T, Settings::Processing::Filters::Noise::Suppression::Enabled>::value,
15772 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier>::value,
int>::type = 0>
15780 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
int>::
15789 typename std::enable_if<
15790 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
15799 typename std::enable_if<
15800 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
15809 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection>::value,
int>::type = 0>
15817 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
int>::
15826 typename std::enable_if<
15827 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
15836 typename std::enable_if<
15837 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Mode>::value,
15846 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing>::value,
int>::type = 0>
15854 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
int>::
15863 typename std::enable_if<
15864 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
15873 typename std::enable_if<
15874 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
15883 typename std::enable_if<std::is_same<T, Settings::Processing::Resampling>::value,
int>::type = 0>
15891 typename std::enable_if<std::is_same<T, Settings::Processing::Resampling::Mode>::value,
int>::type = 0>
15897 template<typename T, typename std::enable_if<std::is_same<T, Settings::RegionOfInterest>::value,
int>::type = 0>
15900 return m_regionOfInterest;
15905 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box>::value,
int>::type = 0>
15913 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Enabled>::value,
int>::type = 0>
15921 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Extents>::value,
int>::type = 0>
15929 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointA>::value,
int>::type = 0>
15937 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointB>::value,
int>::type = 0>
15945 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointO>::value,
int>::type = 0>
15953 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth>::value,
int>::type = 0>
15961 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Enabled>::value,
int>::type = 0>
15969 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Range>::value,
int>::type = 0>
15975 template<typename T, typename std::enable_if<std::is_same<T, Settings::Sampling>::value,
int>::type = 0>
15981 template<typename T, typename std::enable_if<std::is_same<T, Settings::Sampling::Color>::value,
int>::type = 0>
15987 template<typename T, typename std::enable_if<std::is_same<T, Settings::Sampling::Pixel>::value,
int>::type = 0>
15993 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
15996 return m_acquisitions;
15999 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
16002 return m_diagnostics;
16005 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
16011 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
16014 return m_processing;
16017 template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
16020 return m_regionOfInterest;
16023 template<size_t i, typename std::enable_if<i == 5, int>::type = 0>
16030 template<
typename F>
16037 f(m_regionOfInterest);
16042 template<
typename F>
16049 f(m_regionOfInterest);
16065 return stream << value.
toString();
16069 void save(
const std::string &fileName)
const;
16072 void load(
const std::string &fileName);
16075 void setFromString(
const std::string &value);
16077 void setFromString(
const std::string &fullPath,
const std::string &value);
16079 std::string getString(
const std::string &fullPath)
const;
16088 friend struct DataModel::Detail::Befriend<
Settings>;
16102 struct Settings::Version<24>
16104 using Type = Settings;
16111# pragma warning(pop)
16115# if !(defined(_MSC_VER) && (_MSC_VER <= 1900))
16120 struct tuple_size<
Zivid::Settings::Diagnostics> : integral_constant<size_t, 1>
16124 struct tuple_element<i,
Zivid::Settings::Diagnostics>
16126 static_assert(i < tuple_size<Zivid::Settings::Diagnostics>::value,
"Index must be less than 1");
16129 =
decltype(declval<Zivid::Settings::Diagnostics>().get<i>());
16133 struct tuple_size<
Zivid::Settings::Processing> : integral_constant<size_t, 3>
16137 struct tuple_element<i,
Zivid::Settings::Processing>
16139 static_assert(i < tuple_size<Zivid::Settings::Processing>::value,
"Index must be less than 3");
16142 =
decltype(declval<Zivid::Settings::Processing>().get<i>());
16146 struct tuple_size<
Zivid::Settings::Processing::Color> : integral_constant<size_t, 3>
16150 struct tuple_element<i,
Zivid::Settings::Processing::Color>
16152 static_assert(i < tuple_size<Zivid::Settings::Processing::Color>::value,
"Index must be less than 3");
16155 =
decltype(declval<Zivid::Settings::Processing::Color>().get<i>());
16159 struct tuple_size<
Zivid::Settings::Processing::Color::Balance> : integral_constant<size_t, 3>
16163 struct tuple_element<i,
Zivid::Settings::Processing::Color::Balance>
16165 static_assert(i < tuple_size<Zivid::Settings::Processing::Color::Balance>::value,
"Index must be less than 3");
16168 =
decltype(declval<Zivid::Settings::Processing::Color::Balance>().get<i>());
16172 struct tuple_size<
Zivid::Settings::Processing::Color::Experimental> : integral_constant<size_t, 1>
16176 struct tuple_element<i,
Zivid::Settings::Processing::Color::Experimental>
16179 i < tuple_size<Zivid::Settings::Processing::Color::Experimental>::value,
16180 "Index must be less than 1");
16183 =
decltype(declval<Zivid::Settings::Processing::Color::Experimental>().get<i>());
16187 struct tuple_size<
Zivid::Settings::Processing::Filters> : integral_constant<size_t, 7>
16191 struct tuple_element<i,
Zivid::Settings::Processing::Filters>
16193 static_assert(i < tuple_size<Zivid::Settings::Processing::Filters>::value,
"Index must be less than 7");
16196 =
decltype(declval<Zivid::Settings::Processing::Filters>().get<i>());
16200 struct tuple_size<
Zivid::Settings::Processing::Filters::Cluster> : integral_constant<size_t, 1>
16204 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Cluster>
16207 i < tuple_size<Zivid::Settings::Processing::Filters::Cluster>::value,
16208 "Index must be less than 1");
16211 =
decltype(declval<Zivid::Settings::Processing::Filters::Cluster>().get<i>());
16215 struct tuple_size<
Zivid::Settings::Processing::Filters::Cluster::Removal> : integral_constant<size_t, 3>
16219 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Cluster::Removal>
16222 i < tuple_size<Zivid::Settings::Processing::Filters::Cluster::Removal>::value,
16223 "Index must be less than 3");
16226 =
decltype(declval<Zivid::Settings::Processing::Filters::Cluster::Removal>().get<i>());
16230 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental> : integral_constant<size_t, 1>
16234 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental>
16237 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental>::value,
16238 "Index must be less than 1");
16241 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental>().get<i>());
16245 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>
16246 : integral_constant<size_t, 2>
16250 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>
16253 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
16254 "Index must be less than 2");
16257 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>().get<i>());
16261 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>
16262 : integral_constant<size_t, 2>
16266 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>
16269 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::value,
16270 "Index must be less than 2");
16273 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>()
16278 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>
16279 : integral_constant<size_t, 2>
16283 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>
16286 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::value,
16287 "Index must be less than 2");
16290 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>()
16295 struct tuple_size<
Zivid::Settings::Processing::Filters::Hole> : integral_constant<size_t, 1>
16299 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Hole>
16301 static_assert(i < tuple_size<Zivid::Settings::Processing::Filters::Hole>::value,
"Index must be less than 1");
16304 =
decltype(declval<Zivid::Settings::Processing::Filters::Hole>().get<i>());
16308 struct tuple_size<
Zivid::Settings::Processing::Filters::Hole::Repair> : integral_constant<size_t, 3>
16312 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Hole::Repair>
16315 i < tuple_size<Zivid::Settings::Processing::Filters::Hole::Repair>::value,
16316 "Index must be less than 3");
16319 =
decltype(declval<Zivid::Settings::Processing::Filters::Hole::Repair>().get<i>());
16323 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise> : integral_constant<size_t, 3>
16327 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise>
16329 static_assert(i < tuple_size<Zivid::Settings::Processing::Filters::Noise>::value,
"Index must be less than 3");
16332 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise>().get<i>());
16336 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise::Removal> : integral_constant<size_t, 2>
16340 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise::Removal>
16343 i < tuple_size<Zivid::Settings::Processing::Filters::Noise::Removal>::value,
16344 "Index must be less than 2");
16347 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise::Removal>().get<i>());
16351 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise::Repair> : integral_constant<size_t, 1>
16355 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise::Repair>
16358 i < tuple_size<Zivid::Settings::Processing::Filters::Noise::Repair>::value,
16359 "Index must be less than 1");
16362 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise::Repair>().get<i>());
16366 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise::Suppression> : integral_constant<size_t, 1>
16370 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise::Suppression>
16373 i < tuple_size<Zivid::Settings::Processing::Filters::Noise::Suppression>::value,
16374 "Index must be less than 1");
16377 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise::Suppression>().get<i>());
16381 struct tuple_size<
Zivid::Settings::Processing::Filters::Outlier> : integral_constant<size_t, 1>
16385 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Outlier>
16388 i < tuple_size<Zivid::Settings::Processing::Filters::Outlier>::value,
16389 "Index must be less than 1");
16392 =
decltype(declval<Zivid::Settings::Processing::Filters::Outlier>().get<i>());
16396 struct tuple_size<
Zivid::Settings::Processing::Filters::Outlier::Removal> : integral_constant<size_t, 2>
16400 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Outlier::Removal>
16403 i < tuple_size<Zivid::Settings::Processing::Filters::Outlier::Removal>::value,
16404 "Index must be less than 2");
16407 =
decltype(declval<Zivid::Settings::Processing::Filters::Outlier::Removal>().get<i>());
16411 struct tuple_size<
Zivid::Settings::Processing::Filters::Reflection> : integral_constant<size_t, 1>
16415 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Reflection>
16418 i < tuple_size<Zivid::Settings::Processing::Filters::Reflection>::value,
16419 "Index must be less than 1");
16422 =
decltype(declval<Zivid::Settings::Processing::Filters::Reflection>().get<i>());
16426 struct tuple_size<
Zivid::Settings::Processing::Filters::Reflection::Removal> : integral_constant<size_t, 2>
16430 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Reflection::Removal>
16433 i < tuple_size<Zivid::Settings::Processing::Filters::Reflection::Removal>::value,
16434 "Index must be less than 2");
16437 =
decltype(declval<Zivid::Settings::Processing::Filters::Reflection::Removal>().get<i>());
16441 struct tuple_size<
Zivid::Settings::Processing::Filters::Smoothing> : integral_constant<size_t, 1>
16445 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Smoothing>
16448 i < tuple_size<Zivid::Settings::Processing::Filters::Smoothing>::value,
16449 "Index must be less than 1");
16452 =
decltype(declval<Zivid::Settings::Processing::Filters::Smoothing>().get<i>());
16456 struct tuple_size<
Zivid::Settings::Processing::Filters::Smoothing::Gaussian> : integral_constant<size_t, 2>
16460 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Smoothing::Gaussian>
16463 i < tuple_size<Zivid::Settings::Processing::Filters::Smoothing::Gaussian>::value,
16464 "Index must be less than 2");
16467 =
decltype(declval<Zivid::Settings::Processing::Filters::Smoothing::Gaussian>().get<i>());
16471 struct tuple_size<
Zivid::Settings::Processing::Resampling> : integral_constant<size_t, 1>
16475 struct tuple_element<i,
Zivid::Settings::Processing::Resampling>
16477 static_assert(i < tuple_size<Zivid::Settings::Processing::Resampling>::value,
"Index must be less than 1");
16480 =
decltype(declval<Zivid::Settings::Processing::Resampling>().get<i>());
16484 struct tuple_size<
Zivid::Settings::RegionOfInterest> : integral_constant<size_t, 2>
16488 struct tuple_element<i,
Zivid::Settings::RegionOfInterest>
16490 static_assert(i < tuple_size<Zivid::Settings::RegionOfInterest>::value,
"Index must be less than 2");
16493 =
decltype(declval<Zivid::Settings::RegionOfInterest>().get<i>());
16497 struct tuple_size<
Zivid::Settings::RegionOfInterest::Box> : integral_constant<size_t, 5>
16501 struct tuple_element<i,
Zivid::Settings::RegionOfInterest::Box>
16503 static_assert(i < tuple_size<Zivid::Settings::RegionOfInterest::Box>::value,
"Index must be less than 5");
16506 =
decltype(declval<Zivid::Settings::RegionOfInterest::Box>().get<i>());
16510 struct tuple_size<
Zivid::Settings::RegionOfInterest::Depth> : integral_constant<size_t, 2>
16514 struct tuple_element<i,
Zivid::Settings::RegionOfInterest::Depth>
16516 static_assert(i < tuple_size<Zivid::Settings::RegionOfInterest::Depth>::value,
"Index must be less than 2");
16519 =
decltype(declval<Zivid::Settings::RegionOfInterest::Depth>().get<i>());
16523 struct tuple_size<
Zivid::Settings::Sampling> : integral_constant<size_t, 2>
16527 struct tuple_element<i,
Zivid::Settings::Sampling>
16529 static_assert(i < tuple_size<Zivid::Settings::Sampling>::value,
"Index must be less than 2");
16532 =
decltype(declval<Zivid::Settings::Sampling>().get<i>());
16536 struct tuple_size<
Zivid::Settings> : integral_constant<size_t, 6>
16540 struct tuple_element<i,
Zivid::Settings>
16542 static_assert(i < tuple_size<Zivid::Settings>::value,
"Index must be less than 6");
16545 =
decltype(declval<Zivid::Settings>().get<i>());
16554#if defined(__has_include) && !defined(NO_DOC)
16555# if __has_include("Zivid/SettingsInternal.h") && __has_include("Zivid/DataModelNodeMetaData.h")
16556# include "Zivid/SettingsInternal.h"
#define ZIVID_CORE_EXPORT
Definition CoreExport.h:56
Class describing a range of values for a given type T.
Definition Range.h:73
Aperture setting for the camera. Specified as an f-number (the ratio of lens focal length to the effe...
Definition Settings.h:133
bool operator<(const Aperture &other) const
Comparison operator.
Definition Settings.h:196
friend std::ostream & operator<<(std::ostream &stream, const Aperture &value)
Operator to serialize the value to a stream.
Definition Settings.h:220
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:208
bool operator>(const Aperture &other) const
Comparison operator.
Definition Settings.h:202
bool operator==(const Aperture &other) const
Comparison operator.
Definition Settings.h:184
bool operator>=(const Aperture &other) const
Comparison operator.
Definition Settings.h:214
bool operator!=(const Aperture &other) const
Comparison operator.
Definition Settings.h:190
Aperture()=default
Default constructor.
constexpr Aperture(double value)
Constructor.
Definition Settings.h:164
double ValueType
The type of the underlying value.
Definition Settings.h:152
void reset()
Reset the node to unset state.
static constexpr Range< double > validRange()
The range of valid values for Aperture.
Definition Settings.h:155
bool hasValue() const
Check if the value is set.
Brightness controls the light output from the projector.
Definition Settings.h:256
bool operator<=(const Brightness &other) const
Comparison operator.
Definition Settings.h:339
bool operator!=(const Brightness &other) const
Comparison operator.
Definition Settings.h:321
bool operator>=(const Brightness &other) const
Comparison operator.
Definition Settings.h:345
bool operator<(const Brightness &other) const
Comparison operator.
Definition Settings.h:327
bool operator>(const Brightness &other) const
Comparison operator.
Definition Settings.h:333
void reset()
Reset the node to unset state.
static constexpr Range< double > validRange()
The range of valid values for Brightness.
Definition Settings.h:286
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:351
constexpr Brightness(double value)
Constructor.
Definition Settings.h:295
bool hasValue() const
Check if the value is set.
Brightness()=default
Default constructor.
double ValueType
The type of the underlying value.
Definition Settings.h:283
bool operator==(const Brightness &other) const
Comparison operator.
Definition Settings.h:315
Exposure time for each single image in the measurement. Affects frame rate.
Definition Settings.h:377
bool operator>=(const ExposureTime &other) const
Comparison operator.
Definition Settings.h:456
bool operator<(const ExposureTime &other) const
Comparison operator.
Definition Settings.h:438
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:444
std::chrono::microseconds ValueType
The type of the underlying value.
Definition Settings.h:394
bool operator==(const ExposureTime &other) const
Comparison operator.
Definition Settings.h:426
bool operator!=(const ExposureTime &other) const
Comparison operator.
Definition Settings.h:432
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:397
constexpr ExposureTime(std::chrono::microseconds value)
Constructor.
Definition Settings.h:406
friend std::ostream & operator<<(std::ostream &stream, const ExposureTime &value)
Operator to serialize the value to a stream.
Definition Settings.h:462
bool operator<=(const ExposureTime &other) const
Comparison operator.
Definition Settings.h:450
Analog gain in the camera.
Definition Settings.h:489
bool operator==(const Gain &other) const
Comparison operator.
Definition Settings.h:536
friend std::ostream & operator<<(std::ostream &stream, const Gain &value)
Operator to serialize the value to a stream.
Definition Settings.h:572
constexpr Gain(double value)
Constructor.
Definition Settings.h:516
bool operator>=(const Gain &other) const
Comparison operator.
Definition Settings.h:566
void reset()
Reset the node to unset state.
bool operator<=(const Gain &other) const
Comparison operator.
Definition Settings.h:560
static constexpr Range< double > validRange()
The range of valid values for Gain.
Definition Settings.h:507
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:504
std::string toString() const
Get the value as string.
bool operator!=(const Gain &other) const
Comparison operator.
Definition Settings.h:542
bool operator>(const Gain &other) const
Comparison operator.
Definition Settings.h:554
bool operator<(const Gain &other) const
Comparison operator.
Definition Settings.h:548
Settings for a single acquisition.
Definition Settings.h:113
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:846
Acquisition & set(const Aperture &value)
Set Aperture.
Definition Settings.h:725
const Aperture & aperture() const
Get Aperture.
Definition Settings.h:713
std::tuple< Settings::Acquisition::Aperture, Settings::Acquisition::Brightness, Settings::Acquisition::ExposureTime, Settings::Acquisition::Gain > Descendants
Definition Settings.h:594
Gain & gain()
Get Gain.
Definition Settings.h:776
const Settings::Acquisition::Aperture & get() const
Definition Settings.h:791
Brightness & brightness()
Get Brightness.
Definition Settings.h:738
friend std::ostream & operator<<(std::ostream &stream, const Acquisition &value)
Operator to send the value as string to a stream.
Definition Settings.h:874
bool operator==(const Acquisition &other) const
Equality operator.
const Settings::Acquisition::ExposureTime & get() const
Definition Settings.h:807
bool operator!=(const Acquisition &other) const
Inequality operator.
const ExposureTime & exposureTime() const
Get ExposureTime.
Definition Settings.h:751
Acquisition & set(const Brightness &value)
Set Brightness.
Definition Settings.h:744
Acquisition & set(const ExposureTime &value)
Set ExposureTime.
Definition Settings.h:763
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:658
const Brightness & brightness() const
Get Brightness.
Definition Settings.h:732
const Settings::Acquisition::Gain & get() const
Definition Settings.h:815
Acquisition & set(const Gain &value)
Set Gain.
Definition Settings.h:782
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:693
Aperture & aperture()
Get Aperture.
Definition Settings.h:719
const Settings::Acquisition::Brightness & get() const
Definition Settings.h:799
ExposureTime & exposureTime()
Get ExposureTime.
Definition Settings.h:757
const Gain & gain() const
Get Gain.
Definition Settings.h:770
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:856
List of Acquisition objects.
Definition Settings.h:898
bool operator!=(const Acquisitions &other) const
Comparison operator.
Definition Settings.h:1036
std::vector< Settings::Acquisition >::const_iterator ConstIterator
Constant iterator type for Acquisitions.
Definition Settings.h:1015
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:997
std::vector< Settings::Acquisition >::iterator Iterator
Iterator type for Acquisitions.
Definition Settings.h:1006
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:930
friend std::ostream & operator<<(std::ostream &stream, const Acquisitions &value)
Operator to serialize the value to a stream.
Definition Settings.h:1042
void forEach(const F &f)
Run the given function on each element in the list.
Definition Settings.h:987
Acquisitions(std::vector< Settings::Acquisition > value)
Constructor.
Definition Settings.h:925
std::vector< Settings::Acquisition > ValueType
The type of the underlying value.
Definition Settings.h:913
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Acquisitions.
Definition Settings.h:916
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:1091
static const Enabled no
Off/disabled.
Definition Settings.h:1108
bool hasValue() const
Check if the value is set.
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:1111
void reset()
Reset the node to unset state.
Enabled()=default
Default constructor.
bool ValueType
The type of the underlying value.
Definition Settings.h:1106
static const Enabled yes
On/enabled.
Definition Settings.h:1107
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:1140
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:1152
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:1120
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:1146
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:1065
friend std::ostream & operator<<(std::ostream &stream, const Diagnostics &value)
Operator to send the value as string to a stream.
Definition Settings.h:1327
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:1305
std::tuple< Settings::Diagnostics::Enabled > Descendants
Definition Settings.h:1165
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:1251
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:1312
Diagnostics()
Default constructor.
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:1277
bool operator==(const Diagnostics &other) const
Equality operator.
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:1219
const Settings::Diagnostics::Enabled & get() const
Definition Settings.h:1292
bool operator!=(const Diagnostics &other) const
Inequality operator.
Diagnostics & set(const Enabled &value)
Set Enabled.
Definition Settings.h:1283
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:1271
Set the Zivid Vision Engine to use.
Definition Settings.h:1364
std::string toString() const
Get the value as string.
bool operator==(const Engine &other) const
Comparison operator.
Definition Settings.h:1441
bool operator!=(const Engine &other) const
Comparison operator.
Definition Settings.h:1447
static const Engine omni
omni
Definition Settings.h:1403
friend std::ostream & operator<<(std::ostream &stream, const Engine &value)
Operator to serialize the value to a stream.
Definition Settings.h:1453
static std::set< ValueType > validValues()
All valid values of Engine.
Definition Settings.h:1406
void reset()
Reset the node to unset state.
ValueType value() const
Get the value.
static const Engine stripe
stripe
Definition Settings.h:1402
static const Engine phase
phase
Definition Settings.h:1401
Engine()=default
Default constructor.
ValueType
The type of the underlying value.
Definition Settings.h:1396
constexpr Engine(ValueType value)
Constructor.
Definition Settings.h:1415
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:1435
Digital gain applied to blue channel.
Definition Settings.h:1536
friend std::ostream & operator<<(std::ostream &stream, const Blue &value)
Operator to serialize the value to a stream.
Definition Settings.h:1621
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:1585
bool operator>=(const Blue &other) const
Comparison operator.
Definition Settings.h:1615
std::string toString() const
Get the value as string.
bool operator<(const Blue &other) const
Comparison operator.
Definition Settings.h:1597
constexpr Blue(double value)
Constructor.
Definition Settings.h:1565
Blue()=default
Default constructor.
bool operator<=(const Blue &other) const
Comparison operator.
Definition Settings.h:1609
bool operator!=(const Blue &other) const
Comparison operator.
Definition Settings.h:1591
bool hasValue() const
Check if the value is set.
double ValueType
The type of the underlying value.
Definition Settings.h:1553
bool operator>(const Blue &other) const
Comparison operator.
Definition Settings.h:1603
static constexpr Range< double > validRange()
The range of valid values for Blue.
Definition Settings.h:1556
Digital gain applied to green channel.
Definition Settings.h:1648
void reset()
Reset the node to unset state.
bool operator>(const Green &other) const
Comparison operator.
Definition Settings.h:1715
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:1733
double ValueType
The type of the underlying value.
Definition Settings.h:1665
bool operator>=(const Green &other) const
Comparison operator.
Definition Settings.h:1727
constexpr Green(double value)
Constructor.
Definition Settings.h:1677
bool operator==(const Green &other) const
Comparison operator.
Definition Settings.h:1697
bool operator!=(const Green &other) const
Comparison operator.
Definition Settings.h:1703
Green()=default
Default constructor.
std::string toString() const
Get the value as string.
bool operator<(const Green &other) const
Comparison operator.
Definition Settings.h:1709
static constexpr Range< double > validRange()
The range of valid values for Green.
Definition Settings.h:1668
bool operator<=(const Green &other) const
Comparison operator.
Definition Settings.h:1721
Digital gain applied to red channel.
Definition Settings.h:1760
bool operator!=(const Red &other) const
Comparison operator.
Definition Settings.h:1815
constexpr Red(double value)
Constructor.
Definition Settings.h:1789
friend std::ostream & operator<<(std::ostream &stream, const Red &value)
Operator to serialize the value to a stream.
Definition Settings.h:1845
bool operator>=(const Red &other) const
Comparison operator.
Definition Settings.h:1839
double ValueType
The type of the underlying value.
Definition Settings.h:1777
static constexpr Range< double > validRange()
The range of valid values for Red.
Definition Settings.h:1780
double value() const
Get the value.
bool operator==(const Red &other) const
Comparison operator.
Definition Settings.h:1809
Red()=default
Default constructor.
bool operator<(const Red &other) const
Comparison operator.
Definition Settings.h:1821
void reset()
Reset the node to unset state.
bool operator>(const Red &other) const
Comparison operator.
Definition Settings.h:1827
bool hasValue() const
Check if the value is set.
bool operator<=(const Red &other) const
Comparison operator.
Definition Settings.h:1833
std::string toString() const
Get the value as string.
Color balance settings.
Definition Settings.h:1518
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:1929
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:2091
bool operator!=(const Balance &other) const
Inequality operator.
Balance & set(const Red &value)
Set Red.
Definition Settings.h:2036
Green & green()
Get Green.
Definition Settings.h:2011
std::string toString() const
Get the value as string.
Red & red()
Get Red.
Definition Settings.h:2030
std::tuple< Settings::Processing::Color::Balance::Blue, Settings::Processing::Color::Balance::Green, Settings::Processing::Color::Balance::Red > Descendants
Definition Settings.h:1868
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:1965
Balance & set(const Blue &value)
Set Blue.
Definition Settings.h:1998
Blue & blue()
Get Blue.
Definition Settings.h:1992
const Red & red() const
Get Red.
Definition Settings.h:2024
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:2100
const Settings::Processing::Color::Balance::Green & get() const
Definition Settings.h:2057
const Settings::Processing::Color::Balance::Red & get() const
Definition Settings.h:2066
Balance & set(const Green &value)
Set Green.
Definition Settings.h:2017
const Green & green() const
Get Green.
Definition Settings.h:2005
friend std::ostream & operator<<(std::ostream &stream, const Balance &value)
Operator to send the value as string to a stream.
Definition Settings.h:2117
const Settings::Processing::Color::Balance::Blue & get() const
Definition Settings.h:2047
const Blue & blue() const
Get Blue.
Definition Settings.h:1986
Balance()
Default constructor.
This setting controls how the color image is computed.
Definition Settings.h:2181
static const Mode toneMapping
toneMapping
Definition Settings.h:2227
ValueType value() const
Get the value.
std::string toString() const
Get the value as string.
static const Mode automatic
automatic
Definition Settings.h:2225
friend std::ostream & operator<<(std::ostream &stream, const Mode &value)
Operator to serialize the value to a stream.
Definition Settings.h:2277
void reset()
Reset the node to unset state.
static const Mode useFirstAcquisition
useFirstAcquisition
Definition Settings.h:2226
bool operator!=(const Mode &other) const
Comparison operator.
Definition Settings.h:2271
bool operator==(const Mode &other) const
Comparison operator.
Definition Settings.h:2265
ValueType
The type of the underlying value.
Definition Settings.h:2220
bool hasValue() const
Check if the value is set.
constexpr Mode(ValueType value)
Constructor.
Definition Settings.h:2239
static std::set< ValueType > validValues()
All valid values of Mode.
Definition Settings.h:2230
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:2259
Experimental color settings. These may be renamed, moved or deleted in the future.
Definition Settings.h:2140
std::tuple< Settings::Processing::Color::Experimental::Mode > Descendants
Definition Settings.h:2302
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:2469
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:2454
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:2356
std::string toString() const
Get the value as string.
Experimental & set(const Mode &value)
Set Mode.
Definition Settings.h:2423
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:2447
bool operator==(const Experimental &other) const
Equality operator.
Experimental()
Default constructor.
Mode & mode()
Get Mode.
Definition Settings.h:2417
const Mode & mode() const
Get Mode.
Definition Settings.h:2411
const Settings::Processing::Color::Experimental::Mode & get() const
Definition Settings.h:2434
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:2390
Gamma applied to the color values. Gamma less than 1 makes the colors brighter, while gamma greater t...
Definition Settings.h:2492
friend std::ostream & operator<<(std::ostream &stream, const Gamma &value)
Operator to serialize the value to a stream.
Definition Settings.h:2579
double value() const
Get the value.
bool operator>(const Gamma &other) const
Comparison operator.
Definition Settings.h:2561
void reset()
Reset the node to unset state.
static constexpr Range< double > validRange()
The range of valid values for Gamma.
Definition Settings.h:2514
Gamma()=default
Default constructor.
double ValueType
The type of the underlying value.
Definition Settings.h:2511
bool hasValue() const
Check if the value is set.
bool operator>=(const Gamma &other) const
Comparison operator.
Definition Settings.h:2573
constexpr Gamma(double value)
Constructor.
Definition Settings.h:2523
bool operator!=(const Gamma &other) const
Comparison operator.
Definition Settings.h:2549
bool operator<(const Gamma &other) const
Comparison operator.
Definition Settings.h:2555
std::string toString() const
Get the value as string.
bool operator==(const Gamma &other) const
Comparison operator.
Definition Settings.h:2543
bool operator<=(const Gamma &other) const
Comparison operator.
Definition Settings.h:2567
Color settings.
Definition Settings.h:1500
Color & set(const Gamma &value)
Set Gamma.
Definition Settings.h:2812
const Settings::Processing::Color::Gamma & get() const
Definition Settings.h:2876
const Settings::Processing::Color::Balance::Red & get() const
Definition Settings.h:2849
bool operator==(const Color &other) const
Equality operator.
Color & set(const Experimental::Mode &value)
Set Experimental::Mode.
Definition Settings.h:2793
const Settings::Processing::Color::Balance::Green & get() const
Definition Settings.h:2840
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:2674
Color & set(const Experimental &value)
Set Experimental.
Definition Settings.h:2786
Color & set(const Balance &value)
Set Balance.
Definition Settings.h:2746
friend std::ostream & operator<<(std::ostream &stream, const Color &value)
Operator to send the value as string to a stream.
Definition Settings.h:2927
const Balance & balance() const
Get Balance.
Definition Settings.h:2734
const Experimental & experimental() const
Get Experimental.
Definition Settings.h:2774
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:2910
const Settings::Processing::Color::Experimental & get() const
Definition Settings.h:2858
Color & set(const Balance::Green &value)
Set Balance::Green.
Definition Settings.h:2760
Experimental & experimental()
Get Experimental.
Definition Settings.h:2780
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:2601
Color & set(const Balance::Blue &value)
Set Balance::Blue.
Definition Settings.h:2753
Gamma & gamma()
Get Gamma.
Definition Settings.h:2806
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:2713
const Settings::Processing::Color::Experimental::Mode & get() const
Definition Settings.h:2868
Color & set(const Balance::Red &value)
Set Balance::Red.
Definition Settings.h:2767
const Gamma & gamma() const
Get Gamma.
Definition Settings.h:2800
const Settings::Processing::Color::Balance & get() const
Definition Settings.h:2822
Balance & balance()
Get Balance.
Definition Settings.h:2740
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:2901
const Settings::Processing::Color::Balance::Blue & get() const
Definition Settings.h:2831
Enable or disable cluster removal.
Definition Settings.h:3008
bool hasValue() const
Check if the value is set.
bool ValueType
The type of the underlying value.
Definition Settings.h:3025
static const Enabled no
Off/disabled.
Definition Settings.h:3027
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:3039
void reset()
Reset the node to unset state.
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:3030
Enabled()=default
Default constructor.
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:3065
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:3071
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:3059
std::string toString() const
Get the value as string.
bool value() const
Get the value.
static const Enabled yes
On/enabled.
Definition Settings.h:3026
Maximum normalized distance between neighboring points that are still classified as belonging to the ...
Definition Settings.h:3091
constexpr MaxNeighborDistance(double value)
Constructor.
Definition Settings.h:3125
bool operator!=(const MaxNeighborDistance &other) const
Comparison operator.
Definition Settings.h:3151
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:3113
bool hasValue() const
Check if the value is set.
MaxNeighborDistance()=default
Default constructor.
bool operator>=(const MaxNeighborDistance &other) const
Comparison operator.
Definition Settings.h:3175
bool operator<(const MaxNeighborDistance &other) const
Comparison operator.
Definition Settings.h:3157
void reset()
Reset the node to unset state.
static constexpr Range< double > validRange()
The range of valid values for MaxNeighborDistance.
Definition Settings.h:3116
bool operator<=(const MaxNeighborDistance &other) const
Comparison operator.
Definition Settings.h:3169
friend std::ostream & operator<<(std::ostream &stream, const MaxNeighborDistance &value)
Operator to serialize the value to a stream.
Definition Settings.h:3181
bool operator==(const MaxNeighborDistance &other) const
Comparison operator.
Definition Settings.h:3145
bool operator>(const MaxNeighborDistance &other) const
Comparison operator.
Definition Settings.h:3163
Clusters with area below this threshold are removed by the filter. The area is given in mm^2.
Definition Settings.h:3210
bool operator>=(const MinArea &other) const
Comparison operator.
Definition Settings.h:3291
double ValueType
The type of the underlying value.
Definition Settings.h:3229
friend std::ostream & operator<<(std::ostream &stream, const MinArea &value)
Operator to serialize the value to a stream.
Definition Settings.h:3297
bool operator<(const MinArea &other) const
Comparison operator.
Definition Settings.h:3273
bool operator!=(const MinArea &other) const
Comparison operator.
Definition Settings.h:3267
void reset()
Reset the node to unset state.
bool operator<=(const MinArea &other) const
Comparison operator.
Definition Settings.h:3285
constexpr MinArea(double value)
Constructor.
Definition Settings.h:3241
std::string toString() const
Get the value as string.
bool operator>(const MinArea &other) const
Comparison operator.
Definition Settings.h:3279
MinArea()=default
Default constructor.
static constexpr Range< double > validRange()
The range of valid values for MinArea.
Definition Settings.h:3232
double value() const
Get the value.
bool operator==(const MinArea &other) const
Comparison operator.
Definition Settings.h:3261
bool hasValue() const
Check if the value is set.
Cluster removal filter.
Definition Settings.h:2990
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream.
Definition Settings.h:3571
const MaxNeighborDistance & maxNeighborDistance() const
Get MaxNeighborDistance.
Definition Settings.h:3457
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:3438
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition Settings.h:3510
std::string toString() const
Get the value as string.
MinArea & minArea()
Get MinArea.
Definition Settings.h:3482
const MinArea & minArea() const
Get MinArea.
Definition Settings.h:3476
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:3320
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:3417
Removal & set(const MaxNeighborDistance &value)
Set MaxNeighborDistance.
Definition Settings.h:3469
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition Settings.h:3520
Removal & set(const MinArea &value)
Set MinArea.
Definition Settings.h:3488
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:3545
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition Settings.h:3499
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:3444
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:3381
bool operator==(const Removal &other) const
Equality operator.
MaxNeighborDistance & maxNeighborDistance()
Get MaxNeighborDistance.
Definition Settings.h:3463
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:3554
Removal & set(const Enabled &value)
Set Enabled.
Definition Settings.h:3450
Removes floating points and isolated clusters from the point cloud.
Definition Settings.h:2969
const Removal & removal() const
Get Removal.
Definition Settings.h:3712
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition Settings.h:3787
const Settings::Processing::Filters::Cluster::Removal & get() const
Definition Settings.h:3756
Cluster & set(const Removal::MaxNeighborDistance &value)
Set Removal::MaxNeighborDistance.
Definition Settings.h:3738
bool operator!=(const Cluster &other) const
Inequality operator.
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition Settings.h:3777
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:3590
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:3691
Removal & removal()
Get Removal.
Definition Settings.h:3718
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:3807
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:3800
Cluster & set(const Removal::Enabled &value)
Set Removal::Enabled.
Definition Settings.h:3731
Cluster & set(const Removal &value)
Set Removal.
Definition Settings.h:3724
Cluster & set(const Removal::MinArea &value)
Set Removal::MinArea.
Definition Settings.h:3745
Cluster()
Default constructor.
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition Settings.h:3766
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:3654
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:3822
Enable or disable contrast distortion correction.
Definition Settings.h:3913
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:3933
bool ValueType
The type of the underlying value.
Definition Settings.h:3932
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:3937
static const Enabled no
Off/disabled.
Definition Settings.h:3934
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:3946
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:3978
bool hasValue() const
Check if the value is set.
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:3966
bool value() const
Get the value.
Enabled()=default
Default constructor.
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:3972
Strength of correction. Higher values give more correction.
Definition Settings.h:3995
double ValueType
The type of the underlying value.
Definition Settings.h:4014
bool operator>(const Strength &other) const
Comparison operator.
Definition Settings.h:4064
bool operator!=(const Strength &other) const
Comparison operator.
Definition Settings.h:4052
bool hasValue() const
Check if the value is set.
constexpr Strength(double value)
Constructor.
Definition Settings.h:4026
static constexpr Range< double > validRange()
The range of valid values for Strength.
Definition Settings.h:4017
double value() const
Get the value.
bool operator<=(const Strength &other) const
Comparison operator.
Definition Settings.h:4070
bool operator>=(const Strength &other) const
Comparison operator.
Definition Settings.h:4076
friend std::ostream & operator<<(std::ostream &stream, const Strength &value)
Operator to serialize the value to a stream.
Definition Settings.h:4082
Strength()=default
Default constructor.
bool operator<(const Strength &other) const
Comparison operator.
Definition Settings.h:4058
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:4046
Contrast distortion correction filter.
Definition Settings.h:3891
bool operator==(const Correction &other) const
Equality operator.
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:4225
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:4302
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:4219
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition Settings.h:4280
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:4198
Strength & strength()
Get Strength.
Definition Settings.h:4244
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition Settings.h:4265
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:4326
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:4163
Correction & set(const Enabled &value)
Set Enabled.
Definition Settings.h:4231
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:4310
std::string toString() const
Get the value as string.
Correction & set(const Strength &value)
Set Strength.
Definition Settings.h:4250
const Strength & strength() const
Get Strength.
Definition Settings.h:4238
std::tuple< Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength > Descendants
Definition Settings.h:4105
Enable or disable contrast distortion removal.
Definition Settings.h:4370
std::string toString() const
Get the value as string.
static const Enabled yes
On/enabled.
Definition Settings.h:4390
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:4403
Enabled()=default
Default constructor.
void reset()
Reset the node to unset state.
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:4429
bool ValueType
The type of the underlying value.
Definition Settings.h:4389
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:4394
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:4435
bool hasValue() const
Check if the value is set.
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:4423
bool value() const
Get the value.
static const Enabled no
Off/disabled.
Definition Settings.h:4391
Threshold for removal. Higher values remove more points.
Definition Settings.h:4452
void reset()
Reset the node to unset state.
bool operator<=(const Threshold &other) const
Comparison operator.
Definition Settings.h:4527
constexpr Threshold(double value)
Constructor.
Definition Settings.h:4483
bool operator!=(const Threshold &other) const
Comparison operator.
Definition Settings.h:4509
bool operator<(const Threshold &other) const
Comparison operator.
Definition Settings.h:4515
static constexpr Range< double > validRange()
The range of valid values for Threshold.
Definition Settings.h:4474
Threshold()=default
Default constructor.
bool operator==(const Threshold &other) const
Comparison operator.
Definition Settings.h:4503
bool operator>=(const Threshold &other) const
Comparison operator.
Definition Settings.h:4533
std::string toString() const
Get the value as string.
bool operator>(const Threshold &other) const
Comparison operator.
Definition Settings.h:4521
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:4539
double value() const
Get the value.
double ValueType
The type of the underlying value.
Definition Settings.h:4471
Contrast distortion removal filter.
Definition Settings.h:4348
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:4757
std::tuple< Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold > Descendants
Definition Settings.h:4562
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:4620
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream.
Definition Settings.h:4781
const Threshold & threshold() const
Get Threshold.
Definition Settings.h:4695
Removal & set(const Threshold &value)
Set Threshold.
Definition Settings.h:4707
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:4655
Threshold & threshold()
Get Threshold.
Definition Settings.h:4701
Removal & set(const Enabled &value)
Set Enabled.
Definition Settings.h:4688
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition Settings.h:4722
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:4682
Removal()
Default constructor.
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:4676
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition Settings.h:4736
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:4765
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:3867
ContrastDistortion & set(const Removal::Enabled &value)
Set Removal::Enabled.
Definition Settings.h:4981
ContrastDistortion & set(const Correction::Enabled &value)
Set Correction::Enabled.
Definition Settings.h:4948
ContrastDistortion & set(const Correction &value)
Set Correction.
Definition Settings.h:4941
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:5092
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:5116
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:4908
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:4799
ContrastDistortion & set(const Correction::Strength &value)
Set Correction::Strength.
Definition Settings.h:4955
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:4869
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:5100
ContrastDistortion & set(const Removal &value)
Set Removal.
Definition Settings.h:4974
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition Settings.h:5071
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition Settings.h:5043
const Removal & removal() const
Get Removal.
Definition Settings.h:4962
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition Settings.h:5015
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition Settings.h:5001
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition Settings.h:5030
std::string toString() const
Get the value as string.
Removal & removal()
Get Removal.
Definition Settings.h:4968
bool operator==(const ContrastDistortion &other) const
Equality operator.
ContrastDistortion & set(const Removal::Threshold &value)
Set Removal::Threshold.
Definition Settings.h:4988
const Correction & correction() const
Get Correction.
Definition Settings.h:4929
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition Settings.h:5056
Correction & correction()
Get Correction.
Definition Settings.h:4935
Experimental filters. These may be renamed, moved or deleted in the future.
Definition Settings.h:3843
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:5437
ContrastDistortion & contrastDistortion()
Get ContrastDistortion.
Definition Settings.h:5274
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition Settings.h:5387
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:5247
Experimental & set(const ContrastDistortion &value)
Set ContrastDistortion.
Definition Settings.h:5280
Experimental & set(const ContrastDistortion::Removal::Threshold &value)
Set ContrastDistortion::Removal::Threshold.
Definition Settings.h:5322
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:5207
Experimental & set(const ContrastDistortion::Correction::Strength &value)
Set ContrastDistortion::Correction::Strength.
Definition Settings.h:5301
friend std::ostream & operator<<(std::ostream &stream, const Experimental &value)
Operator to send the value as string to a stream.
Definition Settings.h:5452
Experimental()
Default constructor.
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition Settings.h:5374
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:5430
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:5134
Experimental & set(const ContrastDistortion::Removal &value)
Set ContrastDistortion::Removal.
Definition Settings.h:5308
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition Settings.h:5333
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition Settings.h:5345
bool operator!=(const Experimental &other) const
Inequality operator.
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition Settings.h:5415
Experimental & set(const ContrastDistortion::Correction::Enabled &value)
Set ContrastDistortion::Correction::Enabled.
Definition Settings.h:5294
const ContrastDistortion & contrastDistortion() const
Get ContrastDistortion.
Definition Settings.h:5268
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:5287
Experimental & set(const ContrastDistortion::Removal::Enabled &value)
Set ContrastDistortion::Removal::Enabled.
Definition Settings.h:5315
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition Settings.h:5359
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition Settings.h:5401
Enable or disable hole repair.
Definition Settings.h:5515
static const Enabled yes
On/enabled.
Definition Settings.h:5533
static const Enabled no
Off/disabled.
Definition Settings.h:5534
bool value() const
Get the value.
bool ValueType
The type of the underlying value.
Definition Settings.h:5532
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:5572
std::string toString() const
Get the value as string.
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:5566
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:5537
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:5578
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:5546
Relative diameter of holes to fill. Increasing this will fill more points, but require more computati...
Definition Settings.h:5598
HoleSize()=default
Default constructor.
bool operator<(const HoleSize &other) const
Comparison operator.
Definition Settings.h:5662
bool operator>=(const HoleSize &other) const
Comparison operator.
Definition Settings.h:5680
double value() const
Get the value.
static constexpr Range< double > validRange()
The range of valid values for HoleSize.
Definition Settings.h:5621
friend std::ostream & operator<<(std::ostream &stream, const HoleSize &value)
Operator to serialize the value to a stream.
Definition Settings.h:5686
bool operator!=(const HoleSize &other) const
Comparison operator.
Definition Settings.h:5656
bool operator<=(const HoleSize &other) const
Comparison operator.
Definition Settings.h:5674
bool operator==(const HoleSize &other) const
Comparison operator.
Definition Settings.h:5650
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:5630
double ValueType
The type of the underlying value.
Definition Settings.h:5618
void reset()
Reset the node to unset state.
bool operator>(const HoleSize &other) const
Comparison operator.
Definition Settings.h:5668
Level of strictness when considering if a point should be filled. A higher level of strictness requir...
Definition Settings.h:5717
static constexpr Range< int32_t > validRange()
The range of valid values for Strictness.
Definition Settings.h:5741
bool operator>=(const Strictness &other) const
Comparison operator.
Definition Settings.h:5800
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:5770
std::string toString() const
Get the value as string.
bool operator<=(const Strictness &other) const
Comparison operator.
Definition Settings.h:5794
Strictness()=default
Default constructor.
bool operator>(const Strictness &other) const
Comparison operator.
Definition Settings.h:5788
bool hasValue() const
Check if the value is set.
int32_t ValueType
The type of the underlying value.
Definition Settings.h:5738
friend std::ostream & operator<<(std::ostream &stream, const Strictness &value)
Operator to serialize the value to a stream.
Definition Settings.h:5806
constexpr Strictness(int32_t value)
Constructor.
Definition Settings.h:5750
bool operator!=(const Strictness &other) const
Comparison operator.
Definition Settings.h:5776
bool operator<(const Strictness &other) const
Comparison operator.
Definition Settings.h:5782
Fills in point cloud holes by interpolating remaining surrounding points.
Definition Settings.h:5494
Repair & set(const Strictness &value)
Set Strictness.
Definition Settings.h:5997
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:5890
HoleSize & holeSize()
Get HoleSize.
Definition Settings.h:5972
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:6053
Repair & set(const HoleSize &value)
Set HoleSize.
Definition Settings.h:5978
bool operator==(const Repair &other) const
Equality operator.
const Settings::Processing::Filters::Hole::Repair::HoleSize & get() const
Definition Settings.h:6018
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:5926
const Strictness & strictness() const
Get Strictness.
Definition Settings.h:5985
const Settings::Processing::Filters::Hole::Repair::Enabled & get() const
Definition Settings.h:6008
friend std::ostream & operator<<(std::ostream &stream, const Repair &value)
Operator to send the value as string to a stream.
Definition Settings.h:6079
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:5947
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:5953
const Settings::Processing::Filters::Hole::Repair::Strictness & get() const
Definition Settings.h:6028
Repair()
Default constructor.
Strictness & strictness()
Get Strictness.
Definition Settings.h:5991
bool operator!=(const Repair &other) const
Inequality operator.
Repair & set(const Enabled &value)
Set Enabled.
Definition Settings.h:5959
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:6062
std::tuple< Settings::Processing::Filters::Hole::Repair::Enabled, Settings::Processing::Filters::Hole::Repair::HoleSize, Settings::Processing::Filters::Hole::Repair::Strictness > Descendants
Definition Settings.h:5829
const HoleSize & holeSize() const
Get HoleSize.
Definition Settings.h:5966
Contains filters that can be used to deal with holes in the point cloud.
Definition Settings.h:5473
const Repair & repair() const
Get Repair.
Definition Settings.h:6220
const Settings::Processing::Filters::Hole::Repair & get() const
Definition Settings.h:6264
const Settings::Processing::Filters::Hole::Repair::Strictness & get() const
Definition Settings.h:6294
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:6098
friend std::ostream & operator<<(std::ostream &stream, const Hole &value)
Operator to send the value as string to a stream.
Definition Settings.h:6329
const Settings::Processing::Filters::Hole::Repair::HoleSize & get() const
Definition Settings.h:6284
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:6307
Hole & set(const Repair &value)
Set Repair.
Definition Settings.h:6232
Hole & set(const Repair::Strictness &value)
Set Repair::Strictness.
Definition Settings.h:6253
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:6314
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:6199
const Settings::Processing::Filters::Hole::Repair::Enabled & get() const
Definition Settings.h:6274
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:6226
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:6162
Hole & set(const Repair::Enabled &value)
Set Repair::Enabled.
Definition Settings.h:6239
Hole & set(const Repair::HoleSize &value)
Set Repair::HoleSize.
Definition Settings.h:6246
Enable or disable the SNR filter.
Definition Settings.h:6390
static const Enabled yes
On/enabled.
Definition Settings.h:6408
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:6447
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:6441
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:6412
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:6421
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:6453
Enabled()=default
Default constructor.
static const Enabled no
Off/disabled.
Definition Settings.h:6409
bool ValueType
The type of the underlying value.
Definition Settings.h:6407
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:6470
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:6549
constexpr Threshold(double value)
Constructor.
Definition Settings.h:6499
bool operator==(const Threshold &other) const
Comparison operator.
Definition Settings.h:6519
bool operator<=(const Threshold &other) const
Comparison operator.
Definition Settings.h:6543
void reset()
Reset the node to unset state.
static constexpr Range< double > validRange()
The range of valid values for Threshold.
Definition Settings.h:6490
friend std::ostream & operator<<(std::ostream &stream, const Threshold &value)
Operator to serialize the value to a stream.
Definition Settings.h:6555
bool operator>(const Threshold &other) const
Comparison operator.
Definition Settings.h:6537
bool operator<(const Threshold &other) const
Comparison operator.
Definition Settings.h:6531
std::string toString() const
Get the value as string.
double ValueType
The type of the underlying value.
Definition Settings.h:6487
bool operator!=(const Threshold &other) const
Comparison operator.
Definition Settings.h:6525
Discard points with signal-to-noise ratio (SNR) values below a threshold.
Definition Settings.h:6370
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream.
Definition Settings.h:6787
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:6692
const Threshold & threshold() const
Get Threshold.
Definition Settings.h:6711
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:6771
Removal & set(const Enabled &value)
Set Enabled.
Definition Settings.h:6704
Removal & set(const Threshold &value)
Set Threshold.
Definition Settings.h:6723
bool operator==(const Removal &other) const
Equality operator.
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:6636
bool operator!=(const Removal &other) const
Inequality operator.
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition Settings.h:6744
Threshold & threshold()
Get Threshold.
Definition Settings.h:6717
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:6763
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:6671
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:6698
Removal()
Default constructor.
std::string toString() const
Get the value as string.
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition Settings.h:6734
std::tuple< Settings::Processing::Filters::Noise::Removal::Enabled, Settings::Processing::Filters::Noise::Removal::Threshold > Descendants
Definition Settings.h:6578
Enable or disable noise repair.
Definition Settings.h:6835
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:6857
bool ValueType
The type of the underlying value.
Definition Settings.h:6852
static const Enabled no
Off/disabled.
Definition Settings.h:6854
void reset()
Reset the node to unset state.
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:6892
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:6866
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:6853
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:6898
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:6886
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:6812
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:7056
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:7063
bool operator==(const Repair &other) const
Equality operator.
Repair & set(const Enabled &value)
Set Enabled.
Definition Settings.h:7032
std::tuple< Settings::Processing::Filters::Noise::Repair::Enabled > Descendants
Definition Settings.h:6911
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:7026
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:7020
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:6999
const Settings::Processing::Filters::Noise::Repair::Enabled & get() const
Definition Settings.h:7043
friend std::ostream & operator<<(std::ostream &stream, const Repair &value)
Operator to send the value as string to a stream.
Definition Settings.h:7078
std::string toString() const
Get the value as string.
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:6965
Enable or disable noise suppression.
Definition Settings.h:7125
static const Enabled no
Off/disabled.
Definition Settings.h:7144
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:7156
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:7182
void reset()
Reset the node to unset state.
bool ValueType
The type of the underlying value.
Definition Settings.h:7142
std::string toString() const
Get the value as string.
Enabled()=default
Default constructor.
static const Enabled yes
On/enabled.
Definition Settings.h:7143
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:7147
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:7188
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:7176
Reduce noise and outliers in the point cloud. This filter can also be used to reduce ripple effects c...
Definition Settings.h:7102
const Settings::Processing::Filters::Noise::Suppression::Enabled & get() const
Definition Settings.h:7333
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:7346
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:7316
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:7310
std::string toString() const
Get the value as string.
std::tuple< Settings::Processing::Filters::Noise::Suppression::Enabled > Descendants
Definition Settings.h:7201
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:7289
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:7255
friend std::ostream & operator<<(std::ostream &stream, const Suppression &value)
Operator to send the value as string to a stream.
Definition Settings.h:7368
bool operator!=(const Suppression &other) const
Inequality operator.
Suppression & set(const Enabled &value)
Set Enabled.
Definition Settings.h:7322
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:7353
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:6350
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:7693
Noise & set(const Suppression &value)
Set Suppression.
Definition Settings.h:7590
std::string toString() const
Get the value as string.
const Settings::Processing::Filters::Noise::Suppression & get() const
Definition Settings.h:7658
Suppression & suppression()
Get Suppression.
Definition Settings.h:7584
Removal & removal()
Get Removal.
Definition Settings.h:7525
const Settings::Processing::Filters::Noise::Suppression::Enabled & get() const
Definition Settings.h:7668
Noise()
Default constructor.
Noise & set(const Removal::Threshold &value)
Set Removal::Threshold.
Definition Settings.h:7545
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:7498
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:7702
const Suppression & suppression() const
Get Suppression.
Definition Settings.h:7578
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition Settings.h:7628
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:7385
Noise & set(const Removal::Enabled &value)
Set Removal::Enabled.
Definition Settings.h:7538
const Repair & repair() const
Get Repair.
Definition Settings.h:7552
Noise & set(const Repair::Enabled &value)
Set Repair::Enabled.
Definition Settings.h:7571
Noise & set(const Repair &value)
Set Repair.
Definition Settings.h:7564
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:7458
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:7719
Repair & repair()
Get Repair.
Definition Settings.h:7558
const Settings::Processing::Filters::Noise::Repair & get() const
Definition Settings.h:7638
const Removal & removal() const
Get Removal.
Definition Settings.h:7519
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition Settings.h:7618
const Settings::Processing::Filters::Noise::Repair::Enabled & get() const
Definition Settings.h:7648
bool operator==(const Noise &other) const
Equality operator.
Noise & set(const Suppression::Enabled &value)
Set Suppression::Enabled.
Definition Settings.h:7597
const Settings::Processing::Filters::Noise::Removal & get() const
Definition Settings.h:7608
Noise & set(const Removal &value)
Set Removal.
Definition Settings.h:7531
Enable or disable the outlier filter.
Definition Settings.h:7782
bool ValueType
The type of the underlying value.
Definition Settings.h:7799
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:7839
bool value() const
Get the value.
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:7813
static const Enabled no
Off/disabled.
Definition Settings.h:7801
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:7800
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:7845
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:7804
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:7833
Enabled()=default
Default constructor.
Discard point if Euclidean distance to neighboring points is above the given value.
Definition Settings.h:7862
static constexpr Range< double > validRange()
The range of valid values for Threshold.
Definition Settings.h:7882
bool hasValue() const
Check if the value is set.
double value() const
Get the value.
constexpr Threshold(double value)
Constructor.
Definition Settings.h:7891
bool operator<(const Threshold &other) const
Comparison operator.
Definition Settings.h:7923
bool operator==(const Threshold &other) const
Comparison operator.
Definition Settings.h:7911
bool operator>=(const Threshold &other) const
Comparison operator.
Definition Settings.h:7941
bool operator!=(const Threshold &other) const
Comparison operator.
Definition Settings.h:7917
friend std::ostream & operator<<(std::ostream &stream, const Threshold &value)
Operator to serialize the value to a stream.
Definition Settings.h:7947
void reset()
Reset the node to unset state.
bool operator<=(const Threshold &other) const
Comparison operator.
Definition Settings.h:7935
bool operator>(const Threshold &other) const
Comparison operator.
Definition Settings.h:7929
std::string toString() const
Get the value as string.
double ValueType
The type of the underlying value.
Definition Settings.h:7879
Threshold()=default
Default constructor.
Discard point if Euclidean distance to neighboring points is above a threshold.
Definition Settings.h:7762
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:8179
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:8084
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:8063
Removal & set(const Enabled &value)
Set Enabled.
Definition Settings.h:8096
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:8090
Removal & set(const Threshold &value)
Set Threshold.
Definition Settings.h:8115
std::tuple< Settings::Processing::Filters::Outlier::Removal::Enabled, Settings::Processing::Filters::Outlier::Removal::Threshold > Descendants
Definition Settings.h:7970
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition Settings.h:8126
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition Settings.h:8136
const Threshold & threshold() const
Get Threshold.
Definition Settings.h:8103
Threshold & threshold()
Get Threshold.
Definition Settings.h:8109
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:8155
Removal()
Default constructor.
bool operator==(const Removal &other) const
Equality operator.
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:8028
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:8163
Contains a filter that removes points with large Euclidean distance to neighboring points.
Definition Settings.h:7742
const Removal & removal() const
Get Removal.
Definition Settings.h:8315
Outlier & set(const Removal &value)
Set Removal.
Definition Settings.h:8327
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:8392
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:8385
bool operator!=(const Outlier &other) const
Inequality operator.
Outlier & set(const Removal::Threshold &value)
Set Removal::Threshold.
Definition Settings.h:8341
Outlier & set(const Removal::Enabled &value)
Set Removal::Enabled.
Definition Settings.h:8334
std::tuple< Settings::Processing::Filters::Outlier::Removal, Settings::Processing::Filters::Outlier::Removal::Enabled, Settings::Processing::Filters::Outlier::Removal::Threshold > Descendants
Definition Settings.h:8197
Removal & removal()
Get Removal.
Definition Settings.h:8321
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:8294
friend std::ostream & operator<<(std::ostream &stream, const Outlier &value)
Operator to send the value as string to a stream.
Definition Settings.h:8407
bool operator==(const Outlier &other) const
Equality operator.
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition Settings.h:8372
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition Settings.h:8352
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition Settings.h:8362
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:8258
Enable or disable the reflection filter. Note that this filter is computationally intensive and may a...
Definition Settings.h:8468
bool ValueType
The type of the underlying value.
Definition Settings.h:8485
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:8486
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:8525
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:8499
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:8531
bool value() const
Get the value.
static const Enabled no
Off/disabled.
Definition Settings.h:8487
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:8519
Enabled()=default
Default constructor.
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:8490
The reflection filter has two modes: Local and Global. Local mode preserves more 3D data on thinner o...
Definition Settings.h:8555
constexpr Mode(ValueType value)
Constructor.
Definition Settings.h:8597
static std::set< ValueType > validValues()
All valid values of Mode.
Definition Settings.h:8588
ValueType
The type of the underlying value.
Definition Settings.h:8580
static const Mode local
local
Definition Settings.h:8585
bool operator!=(const Mode &other) const
Comparison operator.
Definition Settings.h:8629
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:8635
bool operator==(const Mode &other) const
Comparison operator.
Definition Settings.h:8623
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:8584
friend std::ostream & operator<<(std::ostream &stream, const Mode::ValueType &value)
Operator to serialize ValueType to a stream.
Definition Settings.h:8617
Discard points likely introduced by reflections (useful for shiny materials).
Definition Settings.h:8448
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:8780
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream.
Definition Settings.h:8869
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:8816
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:8718
Removal()
Default constructor.
std::tuple< Settings::Processing::Filters::Reflection::Removal::Enabled, Settings::Processing::Filters::Reflection::Removal::Mode > Descendants
Definition Settings.h:8660
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:8845
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:8753
Removal & set(const Enabled &value)
Set Enabled.
Definition Settings.h:8786
Mode & mode()
Get Mode.
Definition Settings.h:8799
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:8853
const Mode & mode() const
Get Mode.
Definition Settings.h:8793
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:8774
bool operator!=(const Removal &other) const
Inequality operator.
Removal & set(const Mode &value)
Set Mode.
Definition Settings.h:8805
const Settings::Processing::Filters::Reflection::Removal::Mode & get() const
Definition Settings.h:8826
Contains a filter that removes points likely introduced by reflections (useful for shiny materials).
Definition Settings.h:8428
bool operator!=(const Reflection &other) const
Inequality operator.
bool operator==(const Reflection &other) const
Equality operator.
Removal & removal()
Get Removal.
Definition Settings.h:9011
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:8948
friend std::ostream & operator<<(std::ostream &stream, const Reflection &value)
Operator to send the value as string to a stream.
Definition Settings.h:9097
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:9082
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:9075
Reflection & set(const Removal::Enabled &value)
Set Removal::Enabled.
Definition Settings.h:9024
Reflection()
Default constructor.
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition Settings.h:9052
std::tuple< Settings::Processing::Filters::Reflection::Removal, Settings::Processing::Filters::Reflection::Removal::Enabled, Settings::Processing::Filters::Reflection::Removal::Mode > Descendants
Definition Settings.h:8887
std::string toString() const
Get the value as string.
Reflection & set(const Removal::Mode &value)
Set Removal::Mode.
Definition Settings.h:9031
const Settings::Processing::Filters::Reflection::Removal::Mode & get() const
Definition Settings.h:9062
const Removal & removal() const
Get Removal.
Definition Settings.h:9005
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition Settings.h:9042
Reflection & set(const Removal &value)
Set Removal.
Definition Settings.h:9017
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:8984
Enable or disable the smoothing filter.
Definition Settings.h:9156
bool ValueType
The type of the underlying value.
Definition Settings.h:9173
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:9178
bool value() const
Get the value.
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:9213
static const Enabled yes
On/enabled.
Definition Settings.h:9174
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:9207
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:9219
static const Enabled no
Off/disabled.
Definition Settings.h:9175
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:9187
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:9236
Sigma()=default
Default constructor.
double ValueType
The type of the underlying value.
Definition Settings.h:9253
bool operator!=(const Sigma &other) const
Comparison operator.
Definition Settings.h:9291
bool operator>(const Sigma &other) const
Comparison operator.
Definition Settings.h:9303
double value() const
Get the value.
bool hasValue() const
Check if the value is set.
constexpr Sigma(double value)
Constructor.
Definition Settings.h:9265
static constexpr Range< double > validRange()
The range of valid values for Sigma.
Definition Settings.h:9256
friend std::ostream & operator<<(std::ostream &stream, const Sigma &value)
Operator to serialize the value to a stream.
Definition Settings.h:9321
void reset()
Reset the node to unset state.
bool operator>=(const Sigma &other) const
Comparison operator.
Definition Settings.h:9315
bool operator==(const Sigma &other) const
Comparison operator.
Definition Settings.h:9285
bool operator<=(const Sigma &other) const
Comparison operator.
Definition Settings.h:9309
std::string toString() const
Get the value as string.
bool operator<(const Sigma &other) const
Comparison operator.
Definition Settings.h:9297
Gaussian smoothing of the point cloud.
Definition Settings.h:9136
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:9464
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:9529
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition Settings.h:9510
Gaussian & set(const Enabled &value)
Set Enabled.
Definition Settings.h:9470
std::tuple< Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma > Descendants
Definition Settings.h:9344
friend std::ostream & operator<<(std::ostream &stream, const Gaussian &value)
Operator to send the value as string to a stream.
Definition Settings.h:9553
const Sigma & sigma() const
Get Sigma.
Definition Settings.h:9477
bool operator==(const Gaussian &other) const
Equality operator.
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:9458
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:9500
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:9437
Gaussian & set(const Sigma &value)
Set Sigma.
Definition Settings.h:9489
Sigma & sigma()
Get Sigma.
Definition Settings.h:9483
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:9402
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:9537
Smoothing filters.
Definition Settings.h:9118
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:9668
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:9632
std::tuple< Settings::Processing::Filters::Smoothing::Gaussian, Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma > Descendants
Definition Settings.h:9571
Smoothing & set(const Gaussian &value)
Set Gaussian.
Definition Settings.h:9701
Smoothing()
Default constructor.
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition Settings.h:9736
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:9766
Smoothing & set(const Gaussian::Sigma &value)
Set Gaussian::Sigma.
Definition Settings.h:9715
Smoothing & set(const Gaussian::Enabled &value)
Set Gaussian::Enabled.
Definition Settings.h:9708
bool operator!=(const Smoothing &other) const
Inequality operator.
const Gaussian & gaussian() const
Get Gaussian.
Definition Settings.h:9689
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:9726
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:9759
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition Settings.h:9746
friend std::ostream & operator<<(std::ostream &stream, const Smoothing &value)
Operator to send the value as string to a stream.
Definition Settings.h:9781
Gaussian & gaussian()
Get Gaussian.
Definition Settings.h:9695
Filter settings.
Definition Settings.h:2950
bool operator!=(const Filters &other) const
Inequality operator.
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition Settings.h:10688
Filters & set(const Reflection::Removal::Enabled &value)
Set Reflection::Removal::Enabled.
Definition Settings.h:10351
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:10848
Filters & set(const Cluster &value)
Set Cluster.
Definition Settings.h:10067
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition Settings.h:10698
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:10034
Filters & set(const Hole &value)
Set Hole.
Definition Settings.h:10182
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition Settings.h:10544
Filters & set(const Hole::Repair::HoleSize &value)
Set Hole::Repair::HoleSize.
Definition Settings.h:10203
Filters & set(const Noise::Repair &value)
Set Noise::Repair.
Definition Settings.h:10257
std::string toString() const
Get the value as string.
const Settings::Processing::Filters::Hole::Repair::Strictness & get() const
Definition Settings.h:10592
const Settings::Processing::Filters::Noise::Suppression & get() const
Definition Settings.h:10659
Filters & set(const Cluster::Removal::MaxNeighborDistance &value)
Set Cluster::Removal::MaxNeighborDistance.
Definition Settings.h:10088
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition Settings.h:10620
const Settings::Processing::Filters::Hole & get() const
Definition Settings.h:10553
const Settings::Processing::Filters::Noise::Suppression::Enabled & get() const
Definition Settings.h:10669
const Settings::Processing::Filters::Smoothing & get() const
Definition Settings.h:10756
Filters & set(const Noise::Repair::Enabled &value)
Set Noise::Repair::Enabled.
Definition Settings.h:10264
const Settings::Processing::Filters::Cluster::Removal & get() const
Definition Settings.h:10418
Cluster & cluster()
Get Cluster.
Definition Settings.h:10061
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition Settings.h:10727
const Settings::Processing::Filters::Hole::Repair::Enabled & get() const
Definition Settings.h:10572
const Settings::Processing::Filters::Reflection & get() const
Definition Settings.h:10717
Filters & set(const Outlier::Removal::Threshold &value)
Set Outlier::Removal::Threshold.
Definition Settings.h:10318
Filters & set(const Experimental::ContrastDistortion::Correction::Strength &value)
Set Experimental::ContrastDistortion::Correction::Strength.
Definition Settings.h:10142
Filters & set(const Experimental &value)
Set Experimental.
Definition Settings.h:10114
Outlier & outlier()
Get Outlier.
Definition Settings.h:10291
Filters & set(const Reflection::Removal::Mode &value)
Set Reflection::Removal::Mode.
Definition Settings.h:10358
Filters & set(const Hole::Repair::Enabled &value)
Set Hole::Repair::Enabled.
Definition Settings.h:10196
Filters & set(const Noise::Suppression &value)
Set Noise::Suppression.
Definition Settings.h:10271
Filters & set(const Outlier::Removal &value)
Set Outlier::Removal.
Definition Settings.h:10304
const Cluster & cluster() const
Get Cluster.
Definition Settings.h:10055
const Experimental & experimental() const
Get Experimental.
Definition Settings.h:10102
Filters & set(const Experimental::ContrastDistortion &value)
Set Experimental::ContrastDistortion.
Definition Settings.h:10121
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:10869
Filters & set(const Cluster::Removal::Enabled &value)
Set Cluster::Removal::Enabled.
Definition Settings.h:10081
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition Settings.h:10737
const Settings::Processing::Filters::Outlier & get() const
Definition Settings.h:10678
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition Settings.h:10467
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition Settings.h:10786
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:9964
Filters & set(const Hole::Repair &value)
Set Hole::Repair.
Definition Settings.h:10189
const Reflection & reflection() const
Get Reflection.
Definition Settings.h:10325
const Settings::Processing::Filters::Experimental & get() const
Definition Settings.h:10457
Filters & set(const Noise::Removal::Threshold &value)
Set Noise::Removal::Threshold.
Definition Settings.h:10250
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition Settings.h:10776
Filters & set(const Reflection &value)
Set Reflection.
Definition Settings.h:10337
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition Settings.h:10506
Filters & set(const Experimental::ContrastDistortion::Removal &value)
Set Experimental::ContrastDistortion::Removal.
Definition Settings.h:10149
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:10835
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition Settings.h:10428
Filters & set(const Outlier &value)
Set Outlier.
Definition Settings.h:10297
const Noise & noise() const
Get Noise.
Definition Settings.h:10217
Filters & set(const Experimental::ContrastDistortion::Correction &value)
Set Experimental::ContrastDistortion::Correction.
Definition Settings.h:10128
const Settings::Processing::Filters::Hole::Repair & get() const
Definition Settings.h:10562
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition Settings.h:10492
Filters & set(const Reflection::Removal &value)
Set Reflection::Removal.
Definition Settings.h:10344
const Settings::Processing::Filters::Noise::Removal & get() const
Definition Settings.h:10610
Filters & set(const Noise::Removal::Enabled &value)
Set Noise::Removal::Enabled.
Definition Settings.h:10243
const Settings::Processing::Filters::Reflection::Removal::Mode & get() const
Definition Settings.h:10747
Filters & set(const Smoothing::Gaussian::Enabled &value)
Set Smoothing::Gaussian::Enabled.
Definition Settings.h:10391
const Settings::Processing::Filters::Noise & get() const
Definition Settings.h:10601
const Settings::Processing::Filters::Noise::Repair::Enabled & get() const
Definition Settings.h:10649
Filters & set(const Experimental::ContrastDistortion::Removal::Threshold &value)
Set Experimental::ContrastDistortion::Removal::Threshold.
Definition Settings.h:10163
Filters & set(const Smoothing::Gaussian &value)
Set Smoothing::Gaussian.
Definition Settings.h:10384
bool operator==(const Filters &other) const
Equality operator.
Filters & set(const Hole::Repair::Strictness &value)
Set Hole::Repair::Strictness.
Definition Settings.h:10210
Filters & set(const Outlier::Removal::Enabled &value)
Set Outlier::Removal::Enabled.
Definition Settings.h:10311
Filters & set(const Cluster::Removal &value)
Set Cluster::Removal.
Definition Settings.h:10074
const Settings::Processing::Filters::Hole::Repair::HoleSize & get() const
Definition Settings.h:10582
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition Settings.h:10531
const Hole & hole() const
Get Hole.
Definition Settings.h:10170
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:9798
Filters & set(const Cluster::Removal::MinArea &value)
Set Cluster::Removal::MinArea.
Definition Settings.h:10095
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition Settings.h:10518
Noise & noise()
Get Noise.
Definition Settings.h:10223
Filters & set(const Smoothing &value)
Set Smoothing.
Definition Settings.h:10377
Filters & set(const Experimental::ContrastDistortion::Correction::Enabled &value)
Set Experimental::ContrastDistortion::Correction::Enabled.
Definition Settings.h:10135
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition Settings.h:10438
Filters & set(const Noise::Removal &value)
Set Noise::Removal.
Definition Settings.h:10236
const Settings::Processing::Filters::Cluster & get() const
Definition Settings.h:10408
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition Settings.h:10708
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition Settings.h:10630
Smoothing & smoothing()
Get Smoothing.
Definition Settings.h:10371
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition Settings.h:10448
Filters & set(const Noise::Suppression::Enabled &value)
Set Noise::Suppression::Enabled.
Definition Settings.h:10278
Hole & hole()
Get Hole.
Definition Settings.h:10176
const Settings::Processing::Filters::Smoothing::Gaussian & get() const
Definition Settings.h:10766
Filters & set(const Experimental::ContrastDistortion::Removal::Enabled &value)
Set Experimental::ContrastDistortion::Removal::Enabled.
Definition Settings.h:10156
const Outlier & outlier() const
Get Outlier.
Definition Settings.h:10285
const Settings::Processing::Filters::Noise::Repair & get() const
Definition Settings.h:10639
Reflection & reflection()
Get Reflection.
Definition Settings.h:10331
Filters & set(const Noise &value)
Set Noise.
Definition Settings.h:10229
Filters & set(const Smoothing::Gaussian::Sigma &value)
Set Smoothing::Gaussian::Sigma.
Definition Settings.h:10398
const Smoothing & smoothing() const
Get Smoothing.
Definition Settings.h:10365
Experimental & experimental()
Get Experimental.
Definition Settings.h:10108
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition Settings.h:10478
Setting for upsampling or downsampling the point cloud data by some factor. This operation is perform...
Definition Settings.h:10940
void reset()
Reset the node to unset state.
static const Mode upsample2x2
upsample2x2
Definition Settings.h:10990
static const Mode downsample4x4
downsample4x4
Definition Settings.h:10989
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:11045
static const Mode upsample4x4
upsample4x4
Definition Settings.h:10991
static const Mode downsample2x2
downsample2x2
Definition Settings.h:10988
bool operator!=(const Mode &other) const
Comparison operator.
Definition Settings.h:11039
ValueType
The type of the underlying value.
Definition Settings.h:10980
bool operator==(const Mode &other) const
Comparison operator.
Definition Settings.h:11033
bool hasValue() const
Check if the value is set.
static std::set< ValueType > validValues()
All valid values of Mode.
Definition Settings.h:10994
std::string toString() const
Get the value as string.
constexpr Mode(ValueType value)
Constructor.
Definition Settings.h:11007
friend std::ostream & operator<<(std::ostream &stream, const Mode::ValueType &value)
Operator to serialize ValueType to a stream.
Definition Settings.h:11027
static const Mode disabled
disabled
Definition Settings.h:10987
ValueType value() const
Get the value.
Settings for changing the output resolution of the point cloud.
Definition Settings.h:10897
Resampling & set(const Mode &value)
Set Mode.
Definition Settings.h:11191
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:11125
const Mode & mode() const
Get Mode.
Definition Settings.h:11179
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:11214
Mode & mode()
Get Mode.
Definition Settings.h:11185
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:11236
std::tuple< Settings::Processing::Resampling::Mode > Descendants
Definition Settings.h:11071
const Settings::Processing::Resampling::Mode & get() const
Definition Settings.h:11201
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:11158
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:11221
Settings related to processing of a capture, including filters and color balance.
Definition Settings.h:1480
const Settings::Processing::Color::Experimental::Mode & get() const
Definition Settings.h:11986
const Settings::Processing::Filters::Hole::Repair::Enabled & get() const
Definition Settings.h:12166
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition Settings.h:12114
const Settings::Processing::Filters::Hole::Repair::HoleSize & get() const
Definition Settings.h:12176
const Settings::Processing::Filters::Smoothing::Gaussian & get() const
Definition Settings.h:12356
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition Settings.h:12327
Resampling & resampling()
Get Resampling.
Definition Settings.h:11911
Processing & set(const Color::Experimental &value)
Set Color::Experimental.
Definition Settings.h:11599
Processing & set(const Color &value)
Set Color.
Definition Settings.h:11564
Processing & set(const Filters::Cluster::Removal::MaxNeighborDistance &value)
Set Filters::Cluster::Removal::MaxNeighborDistance.
Definition Settings.h:11660
const Settings::Processing::Filters::Noise::Repair::Enabled & get() const
Definition Settings.h:12242
const Settings::Processing::Color::Balance::Red & get() const
Definition Settings.h:11968
Processing & set(const Color::Balance &value)
Set Color::Balance.
Definition Settings.h:11571
Processing & set(const Filters::Smoothing::Gaussian &value)
Set Filters::Smoothing::Gaussian.
Definition Settings.h:11884
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:11532
Filters & filters()
Get Filters.
Definition Settings.h:11626
Processing & set(const Filters::Smoothing::Gaussian::Enabled &value)
Set Filters::Smoothing::Gaussian::Enabled.
Definition Settings.h:11891
const Settings::Processing::Filters::Noise::Suppression::Enabled & get() const
Definition Settings.h:12261
Processing & set(const Resampling &value)
Set Resampling.
Definition Settings.h:11917
const Settings::Processing::Color::Gamma & get() const
Definition Settings.h:11994
Processing & set(const Filters::Experimental::ContrastDistortion::Removal &value)
Set Filters::Experimental::ContrastDistortion::Removal.
Definition Settings.h:11709
Processing & set(const Resampling::Mode &value)
Set Resampling::Mode.
Definition Settings.h:11924
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:11253
const Settings::Processing::Filters::Smoothing & get() const
Definition Settings.h:12346
Processing & set(const Filters::Experimental::ContrastDistortion::Removal::Threshold &value)
Set Filters::Experimental::ContrastDistortion::Removal::Threshold.
Definition Settings.h:11723
const Settings::Processing::Color::Balance::Green & get() const
Definition Settings.h:11959
Processing & set(const Filters::Outlier::Removal &value)
Set Filters::Outlier::Removal.
Definition Settings.h:11828
Processing & set(const Filters::Experimental::ContrastDistortion::Removal::Enabled &value)
Set Filters::Experimental::ContrastDistortion::Removal::Enabled.
Definition Settings.h:11716
Processing & set(const Filters::Cluster::Removal::Enabled &value)
Set Filters::Cluster::Removal::Enabled.
Definition Settings.h:11653
friend std::ostream & operator<<(std::ostream &stream, const Processing &value)
Operator to send the value as string to a stream.
Definition Settings.h:12443
const Settings::Processing::Filters::Noise::Suppression & get() const
Definition Settings.h:12251
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition Settings.h:12125
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition Settings.h:12317
std::string toString() const
Get the value as string.
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition Settings.h:12223
const Settings::Processing::Filters::Hole::Repair & get() const
Definition Settings.h:12156
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition Settings.h:12376
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition Settings.h:12213
Processing & set(const Color::Balance::Blue &value)
Set Color::Balance::Blue.
Definition Settings.h:11578
Color & color()
Get Color.
Definition Settings.h:11558
Processing & set(const Filters::Hole::Repair::Strictness &value)
Set Filters::Hole::Repair::Strictness.
Definition Settings.h:11758
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition Settings.h:12366
Processing & set(const Filters::Reflection &value)
Set Filters::Reflection.
Definition Settings.h:11849
Processing & set(const Filters::Noise &value)
Set Filters::Noise.
Definition Settings.h:11765
Processing & set(const Filters::Hole &value)
Set Filters::Hole.
Definition Settings.h:11730
Processing & set(const Filters::Cluster &value)
Set Filters::Cluster.
Definition Settings.h:11639
const Settings::Processing::Filters::Outlier & get() const
Definition Settings.h:12269
const Settings::Processing::Filters & get() const
Definition Settings.h:12002
Processing & set(const Filters::Experimental::ContrastDistortion::Correction::Strength &value)
Set Filters::Experimental::ContrastDistortion::Correction::Strength.
Definition Settings.h:11702
Processing & set(const Filters::Noise::Removal::Enabled &value)
Set Filters::Noise::Removal::Enabled.
Definition Settings.h:11779
Processing & set(const Filters::Smoothing &value)
Set Filters::Smoothing.
Definition Settings.h:11877
const Settings::Processing::Color::Balance & get() const
Definition Settings.h:11941
const Filters & filters() const
Get Filters.
Definition Settings.h:11620
Processing & set(const Filters::Cluster::Removal &value)
Set Filters::Cluster::Removal.
Definition Settings.h:11646
const Settings::Processing::Filters::Hole::Repair::Strictness & get() const
Definition Settings.h:12186
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:12426
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition Settings.h:12049
Processing & set(const Filters::Smoothing::Gaussian::Sigma &value)
Set Filters::Smoothing::Gaussian::Sigma.
Definition Settings.h:11898
Processing & set(const Filters::Noise::Suppression &value)
Set Filters::Noise::Suppression.
Definition Settings.h:11807
Processing & set(const Filters::Noise::Removal &value)
Set Filters::Noise::Removal.
Definition Settings.h:11772
Processing & set(const Filters::Reflection::Removal::Mode &value)
Set Filters::Reflection::Removal::Mode.
Definition Settings.h:11870
Processing & set(const Filters::Hole::Repair::Enabled &value)
Set Filters::Hole::Repair::Enabled.
Definition Settings.h:11744
const Settings::Processing::Resampling & get() const
Definition Settings.h:12384
Processing & set(const Filters::Outlier::Removal::Enabled &value)
Set Filters::Outlier::Removal::Enabled.
Definition Settings.h:11835
Processing & set(const Filters::Noise::Removal::Threshold &value)
Set Filters::Noise::Removal::Threshold.
Definition Settings.h:11786
const Settings::Processing::Color::Balance::Blue & get() const
Definition Settings.h:11950
Processing & set(const Filters::Cluster::Removal::MinArea &value)
Set Filters::Cluster::Removal::MinArea.
Definition Settings.h:11667
Processing & set(const Filters::Experimental &value)
Set Filters::Experimental.
Definition Settings.h:11674
const Settings::Processing::Filters::Noise::Removal & get() const
Definition Settings.h:12203
Processing & set(const Filters::Outlier::Removal::Threshold &value)
Set Filters::Outlier::Removal::Threshold.
Definition Settings.h:11842
Processing & set(const Color::Balance::Green &value)
Set Color::Balance::Green.
Definition Settings.h:11585
const Settings::Processing::Color::Experimental & get() const
Definition Settings.h:11977
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition Settings.h:12103
Processing & set(const Filters::Outlier &value)
Set Filters::Outlier.
Definition Settings.h:11821
Processing & set(const Filters::Noise::Repair::Enabled &value)
Set Filters::Noise::Repair::Enabled.
Definition Settings.h:11800
const Settings::Processing::Filters::Reflection::Removal::Mode & get() const
Definition Settings.h:12337
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition Settings.h:12090
Processing & set(const Color::Experimental::Mode &value)
Set Color::Experimental::Mode.
Definition Settings.h:11606
Processing & set(const Filters::Reflection::Removal::Enabled &value)
Set Filters::Reflection::Removal::Enabled.
Definition Settings.h:11863
Processing & set(const Filters::Experimental::ContrastDistortion::Correction::Enabled &value)
Set Filters::Experimental::ContrastDistortion::Correction::Enabled.
Definition Settings.h:11695
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition Settings.h:12029
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition Settings.h:12298
Processing & set(const Filters::Reflection::Removal &value)
Set Filters::Reflection::Removal.
Definition Settings.h:11856
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition Settings.h:12039
Processing & set(const Filters::Experimental::ContrastDistortion::Correction &value)
Set Filters::Experimental::ContrastDistortion::Correction.
Definition Settings.h:11688
const Settings::Processing::Color & get() const
Definition Settings.h:11933
bool operator==(const Processing &other) const
Equality operator.
const Color & color() const
Get Color.
Definition Settings.h:11552
Processing & set(const Filters::Experimental::ContrastDistortion &value)
Set Filters::Experimental::ContrastDistortion.
Definition Settings.h:11681
Processing & set(const Filters::Noise::Suppression::Enabled &value)
Set Filters::Noise::Suppression::Enabled.
Definition Settings.h:11814
const Settings::Processing::Filters::Cluster::Removal & get() const
Definition Settings.h:12019
const Settings::Processing::Filters::Reflection & get() const
Definition Settings.h:12307
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition Settings.h:12288
Processing & set(const Filters &value)
Set Filters.
Definition Settings.h:11632
const Settings::Processing::Resampling::Mode & get() const
Definition Settings.h:12392
Processing & set(const Color::Balance::Red &value)
Set Color::Balance::Red.
Definition Settings.h:11592
const Settings::Processing::Filters::Noise & get() const
Definition Settings.h:12194
bool operator!=(const Processing &other) const
Inequality operator.
const Settings::Processing::Filters::Experimental & get() const
Definition Settings.h:12058
const Settings::Processing::Filters::Noise::Repair & get() const
Definition Settings.h:12232
Processing & set(const Color::Gamma &value)
Set Color::Gamma.
Definition Settings.h:11613
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:11452
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition Settings.h:12138
const Settings::Processing::Filters::Cluster & get() const
Definition Settings.h:12010
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition Settings.h:12078
Processing & set(const Filters::Noise::Repair &value)
Set Filters::Noise::Repair.
Definition Settings.h:11793
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition Settings.h:12068
const Resampling & resampling() const
Get Resampling.
Definition Settings.h:11905
Processing & set(const Filters::Hole::Repair::HoleSize &value)
Set Filters::Hole::Repair::HoleSize.
Definition Settings.h:11751
Processing & set(const Filters::Hole::Repair &value)
Set Filters::Hole::Repair.
Definition Settings.h:11737
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:12417
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition Settings.h:12278
const Settings::Processing::Filters::Hole & get() const
Definition Settings.h:12147
Enable or disable box filter.
Definition Settings.h:12536
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:12567
bool ValueType
The type of the underlying value.
Definition Settings.h:12553
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:12587
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:12558
static const Enabled yes
On/enabled.
Definition Settings.h:12554
static const Enabled no
Off/disabled.
Definition Settings.h:12555
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:12599
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:12593
Two points on the normal describing the direction and distance from the plane from which the normal i...
Definition Settings.h:12616
std::string toString() const
Get the value as string.
bool operator==(const Extents &other) const
Comparison operator.
Definition Settings.h:12664
Extents()=default
Default constructor.
void reset()
Reset the node to unset state.
constexpr Extents(Zivid::Range< double > value)
Constructor.
Definition Settings.h:12639
constexpr Extents(double minValue, double maxValue)
Constructor.
Definition Settings.h:12659
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:12676
const Zivid::Range< double > & value() const
Get the value.
bool operator!=(const Extents &other) const
Comparison operator.
Definition Settings.h:12670
A point such that the vector from PointO to PointA describes the first edge of the parallelogram.
Definition Settings.h:12693
void reset()
Reset the node to unset state.
constexpr PointA(float x, float y, float z)
Constructor.
Definition Settings.h:12736
bool operator!=(const PointA &other) const
Comparison operator.
Definition Settings.h:12747
PointA()=default
Default constructor.
bool operator==(const PointA &other) const
Comparison operator.
Definition Settings.h:12741
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:12753
constexpr PointA(Zivid::PointXYZ value)
Constructor.
Definition Settings.h:12716
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:12770
PointB()=default
Default constructor.
bool operator==(const PointB &other) const
Comparison operator.
Definition Settings.h:12818
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:12830
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:12813
constexpr PointB(Zivid::PointXYZ value)
Constructor.
Definition Settings.h:12793
Zivid::PointXYZ value() const
Get the value.
bool operator!=(const PointB &other) const
Comparison operator.
Definition Settings.h:12824
The point at the intersection of two adjacent edges defining a parallelogram.
Definition Settings.h:12847
constexpr PointO(float x, float y, float z)
Constructor.
Definition Settings.h:12890
void reset()
Reset the node to unset state.
bool operator!=(const PointO &other) const
Comparison operator.
Definition Settings.h:12901
PointO()=default
Default constructor.
constexpr PointO(Zivid::PointXYZ value)
Constructor.
Definition Settings.h:12870
bool operator==(const PointO &other) const
Comparison operator.
Definition Settings.h:12895
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:12907
Removes points outside the given three-dimensional box.
Definition Settings.h:12501
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:12920
Box & set(const PointA &value)
Set PointA.
Definition Settings.h:13095
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:13024
const PointO & pointO() const
Get PointO.
Definition Settings.h:13121
Box & set(const PointO &value)
Set PointO.
Definition Settings.h:13133
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:13051
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:13045
Box & set(const Extents &value)
Set Extents.
Definition Settings.h:13076
const Settings::RegionOfInterest::Box::Enabled & get() const
Definition Settings.h:13143
PointA & pointA()
Get PointA.
Definition Settings.h:13089
PointB & pointB()
Get PointB.
Definition Settings.h:13108
Box & set(const PointB &value)
Set PointB.
Definition Settings.h:13114
const Settings::RegionOfInterest::Box::PointO & get() const
Definition Settings.h:13179
Box()
Default constructor.
const Settings::RegionOfInterest::Box::PointA & get() const
Definition Settings.h:13161
const Extents & extents() const
Get Extents.
Definition Settings.h:13064
const PointA & pointA() const
Get PointA.
Definition Settings.h:13083
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:12987
PointO & pointO()
Get PointO.
Definition Settings.h:13127
Extents & extents()
Get Extents.
Definition Settings.h:13070
const PointB & pointB() const
Get PointB.
Definition Settings.h:13102
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:13216
friend std::ostream & operator<<(std::ostream &stream, const Box &value)
Operator to send the value as string to a stream.
Definition Settings.h:13246
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:13170
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:13227
const Settings::RegionOfInterest::Box::Extents & get() const
Definition Settings.h:13152
Box & set(const Enabled &value)
Set Enabled.
Definition Settings.h:13057
Enable or disable depth filter.
Definition Settings.h:13295
Enabled()=default
Default constructor.
static const Enabled yes
On/enabled.
Definition Settings.h:13313
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:13346
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:13352
bool ValueType
The type of the underlying value.
Definition Settings.h:13312
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:13358
bool value() const
Get the value.
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:13317
std::string toString() const
Get the value as string.
static const Enabled no
Off/disabled.
Definition Settings.h:13314
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:13326
Specify the minimum and maximum Z value that will be included.
Definition Settings.h:13375
constexpr Range(double minValue, double maxValue)
Constructor.
Definition Settings.h:13418
constexpr Range(Zivid::Range< double > value)
Constructor.
Definition Settings.h:13398
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:13435
Range()=default
Default constructor.
bool operator==(const Range &other) const
Comparison operator.
Definition Settings.h:13423
bool operator!=(const Range &other) const
Comparison operator.
Definition Settings.h:13429
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:13273
Depth()
Default constructor.
Depth & set(const Enabled &value)
Set Enabled.
Definition Settings.h:13572
std::string toString() const
Get the value as string.
const Range & range() const
Get Range.
Definition Settings.h:13579
Depth & set(const Range &value)
Set Range.
Definition Settings.h:13591
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:13560
bool operator==(const Depth &other) const
Equality operator.
std::tuple< Settings::RegionOfInterest::Depth::Enabled, Settings::RegionOfInterest::Depth::Range > Descendants
Definition Settings.h:13448
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:13637
bool operator!=(const Depth &other) const
Inequality operator.
const Settings::RegionOfInterest::Depth::Enabled & get() const
Definition Settings.h:13601
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:13629
Range & range()
Get Range.
Definition Settings.h:13585
friend std::ostream & operator<<(std::ostream &stream, const Depth &value)
Operator to send the value as string to a stream.
Definition Settings.h:13653
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:13505
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:13566
const Settings::RegionOfInterest::Depth::Range & get() const
Definition Settings.h:13610
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:13539
Removes points outside the region of interest.
Definition Settings.h:12467
const Settings::RegionOfInterest::Depth::Enabled & get() const
Definition Settings.h:13958
Depth & depth()
Get Depth.
Definition Settings.h:13870
RegionOfInterest & set(const Depth::Enabled &value)
Set Depth::Enabled.
Definition Settings.h:13883
const Box & box() const
Get Box.
Definition Settings.h:13810
RegionOfInterest & set(const Box &value)
Set Box.
Definition Settings.h:13822
friend std::ostream & operator<<(std::ostream &stream, const RegionOfInterest &value)
Operator to send the value as string to a stream.
Definition Settings.h:14010
RegionOfInterest & set(const Box::PointO &value)
Set Box::PointO.
Definition Settings.h:13857
const Settings::RegionOfInterest::Box::PointO & get() const
Definition Settings.h:13941
std::string toString() const
Get the value as string.
const Settings::RegionOfInterest::Box::PointA & get() const
Definition Settings.h:13925
const Settings::RegionOfInterest::Depth & get() const
Definition Settings.h:13949
const Settings::RegionOfInterest::Box::Extents & get() const
Definition Settings.h:13917
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:13671
const Settings::RegionOfInterest::Depth::Range & get() const
Definition Settings.h:13967
const Settings::RegionOfInterest::Box::PointB & get() const
Definition Settings.h:13933
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:13750
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:13790
Box & box()
Get Box.
Definition Settings.h:13816
const Settings::RegionOfInterest::Box & get() const
Definition Settings.h:13899
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:13986
RegionOfInterest & set(const Box::PointA &value)
Set Box::PointA.
Definition Settings.h:13843
const Depth & depth() const
Get Depth.
Definition Settings.h:13864
RegionOfInterest & set(const Box::Extents &value)
Set Box::Extents.
Definition Settings.h:13836
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:13994
RegionOfInterest & set(const Box::Enabled &value)
Set Box::Enabled.
Definition Settings.h:13829
RegionOfInterest & set(const Depth::Range &value)
Set Depth::Range.
Definition Settings.h:13890
bool operator!=(const RegionOfInterest &other) const
Inequality operator.
RegionOfInterest & set(const Depth &value)
Set Depth.
Definition Settings.h:13876
RegionOfInterest & set(const Box::PointB &value)
Set Box::PointB.
Definition Settings.h:13850
bool operator==(const RegionOfInterest &other) const
Equality operator.
const Settings::RegionOfInterest::Box::Enabled & get() const
Definition Settings.h:13908
RegionOfInterest()
Default constructor.
Choose how to sample colors for the pointcloud. The rgb option gives all colors for a regular Zivid c...
Definition Settings.h:14056
ValueType
The type of the underlying value.
Definition Settings.h:14078
std::string toString() const
Get the value as string.
static std::set< ValueType > validValues()
All valid values of Color.
Definition Settings.h:14086
friend std::ostream & operator<<(std::ostream &stream, const Color &value)
Operator to serialize the value to a stream.
Definition Settings.h:14133
constexpr Color(ValueType value)
Constructor.
Definition Settings.h:14095
bool operator!=(const Color &other) const
Comparison operator.
Definition Settings.h:14127
Color()=default
Default constructor.
static const Color disabled
disabled
Definition Settings.h:14083
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:14121
friend std::ostream & operator<<(std::ostream &stream, const Color::ValueType &value)
Operator to serialize ValueType to a stream.
Definition Settings.h:14115
static const Color rgb
rgb
Definition Settings.h:14082
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:14168
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:14208
static const Pixel redSubsample4x4
redSubsample4x4
Definition Settings.h:14205
constexpr Pixel(ValueType value)
Constructor.
Definition Settings.h:14221
static const Pixel all
all
Definition Settings.h:14201
static const Pixel blueSubsample2x2
blueSubsample2x2
Definition Settings.h:14202
bool operator!=(const Pixel &other) const
Comparison operator.
Definition Settings.h:14253
ValueType
The type of the underlying value.
Definition Settings.h:14194
static const Pixel redSubsample2x2
redSubsample2x2
Definition Settings.h:14203
Pixel()=default
Default constructor.
bool operator==(const Pixel &other) const
Comparison operator.
Definition Settings.h:14247
static const Pixel blueSubsample4x4
blueSubsample4x4
Definition Settings.h:14204
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:14241
friend std::ostream & operator<<(std::ostream &stream, const Pixel &value)
Operator to serialize the value to a stream.
Definition Settings.h:14259
std::string toString() const
Get the value as string.
Sampling settings.
Definition Settings.h:14033
std::tuple< Settings::Sampling::Color, Settings::Sampling::Pixel > Descendants
Definition Settings.h:14284
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:14340
bool operator==(const Sampling &other) const
Equality operator.
Color & color()
Get Color.
Definition Settings.h:14399
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:14373
const Pixel & pixel() const
Get Pixel.
Definition Settings.h:14412
friend std::ostream & operator<<(std::ostream &stream, const Sampling &value)
Operator to send the value as string to a stream.
Definition Settings.h:14484
Pixel & pixel()
Get Pixel.
Definition Settings.h:14418
const Settings::Sampling::Color & get() const
Definition Settings.h:14433
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:14460
Sampling()
Default constructor.
const Settings::Sampling::Pixel & get() const
Definition Settings.h:14441
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:14468
const Color & color() const
Get Color.
Definition Settings.h:14393
std::string toString() const
Get the value as string.
Sampling & set(const Color &value)
Set Color.
Definition Settings.h:14405
Sampling & set(const Pixel &value)
Set Pixel.
Definition Settings.h:14424
Settings used when capturing with a Zivid camera.
Definition Settings.h:79
const Settings::RegionOfInterest::Depth & get() const
Definition Settings.h:15954
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition Settings.h:15792
Settings(Args &&...args)
Constructor taking variadic number of arguments.
Definition Settings.h:14664
Settings & set(const Processing::Filters::Cluster::Removal::MinArea &value)
Set Processing::Filters::Cluster::Removal::MinArea.
Definition Settings.h:15048
const Settings::Processing::Filters::Outlier & get() const
Definition Settings.h:15773
Settings & set(const RegionOfInterest::Box::PointB &value)
Set RegionOfInterest::Box::PointB.
Definition Settings.h:15347
const Settings::Processing::Filters::Hole::Repair & get() const
Definition Settings.h:15663
const Settings::Processing::Color::Balance & get() const
Definition Settings.h:15457
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled &value)
Set Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled.
Definition Settings.h:15097
const Settings::Processing::Color::Balance::Red & get() const
Definition Settings.h:15481
Settings & set(const Processing::Color::Experimental::Mode &value)
Set Processing::Color::Experimental::Mode.
Definition Settings.h:14999
Settings & set(const Processing::Filters::Smoothing &value)
Set Processing::Filters::Smoothing.
Definition Settings.h:15258
const Settings::RegionOfInterest & get() const
Definition Settings.h:15898
const Settings::Processing::Filters::Noise::Removal & get() const
Definition Settings.h:15708
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:14855
const Processing & processing() const
Get Processing.
Definition Settings.h:14938
const Settings::Processing::Color::Gamma & get() const
Definition Settings.h:15506
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition Settings.h:15623
Settings & set(const Processing &value)
Set Processing.
Definition Settings.h:14950
const Settings::Sampling::Pixel & get() const
Definition Settings.h:15988
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition Settings.h:15646
Settings & set(const Sampling &value)
Set Sampling.
Definition Settings.h:15394
Settings & set(const Processing::Filters::Outlier::Removal::Enabled &value)
Set Processing::Filters::Outlier::Removal::Enabled.
Definition Settings.h:15216
Settings & set(const Processing::Filters::Hole::Repair::Enabled &value)
Set Processing::Filters::Hole::Repair::Enabled.
Definition Settings.h:15125
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition Settings.h:15551
const Settings::Processing::Filters::Hole & get() const
Definition Settings.h:15655
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold &value)
Set Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold.
Definition Settings.h:15104
Settings & set(const Processing::Filters::Smoothing::Gaussian &value)
Set Processing::Filters::Smoothing::Gaussian.
Definition Settings.h:15265
Settings & set(const Sampling::Color &value)
Set Sampling::Color.
Definition Settings.h:15401
Settings & set(const Diagnostics &value)
Set Diagnostics.
Definition Settings.h:14905
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition Settings.h:15634
Settings & set(const RegionOfInterest::Depth::Enabled &value)
Set RegionOfInterest::Depth::Enabled.
Definition Settings.h:15368
Settings & set(const Processing::Filters::Noise &value)
Set Processing::Filters::Noise.
Definition Settings.h:15146
const Sampling & sampling() const
Get Sampling.
Definition Settings.h:15382
void load(const std::string &fileName)
Load from the given file.
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition Settings.h:15561
const Settings::Acquisitions & get() const
Definition Settings.h:15415
const Settings::Processing::Filters::Experimental & get() const
Definition Settings.h:15569
const Settings::Processing::Filters::Noise::Suppression & get() const
Definition Settings.h:15755
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition Settings.h:15782
Settings & set(const Processing::Filters::Cluster &value)
Set Processing::Filters::Cluster.
Definition Settings.h:15020
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition Settings.h:15876
const Settings::Diagnostics & get() const
Definition Settings.h:15421
RegionOfInterest & regionOfInterest()
Get RegionOfInterest.
Definition Settings.h:15306
const Settings::Processing::Resampling & get() const
Definition Settings.h:15884
Settings & set(const Processing::Filters::Hole &value)
Set Processing::Filters::Hole.
Definition Settings.h:15111
Settings & set(const Processing::Filters::Reflection::Removal::Mode &value)
Set Processing::Filters::Reflection::Removal::Mode.
Definition Settings.h:15251
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition Settings.h:15866
const Settings::RegionOfInterest::Box & get() const
Definition Settings.h:15906
Settings & set(const Processing::Color::Balance &value)
Set Processing::Color::Balance.
Definition Settings.h:14964
const Settings::RegionOfInterest::Box::PointO & get() const
Definition Settings.h:15946
Settings & set(const RegionOfInterest::Depth &value)
Set RegionOfInterest::Depth.
Definition Settings.h:15361
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition Settings.h:15718
const Settings::RegionOfInterest::Depth::Enabled & get() const
Definition Settings.h:15962
const Settings::Processing::Filters::Hole::Repair::Strictness & get() const
Definition Settings.h:15691
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition Settings.h:15589
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:16031
const Settings::Processing::Color::Balance::Green & get() const
Definition Settings.h:15473
const Settings::RegionOfInterest::Box::Extents & get() const
Definition Settings.h:15922
Settings & set(const Processing::Filters::Smoothing::Gaussian::Enabled &value)
Set Processing::Filters::Smoothing::Gaussian::Enabled.
Definition Settings.h:15272
const Settings::Processing & get() const
Definition Settings.h:15441
Settings & set(const Processing::Filters::Reflection &value)
Set Processing::Filters::Reflection.
Definition Settings.h:15230
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:16043
Settings()
Default constructor.
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition Settings.h:15579
Settings & set(const Processing::Filters::Outlier::Removal::Threshold &value)
Set Processing::Filters::Outlier::Removal::Threshold.
Definition Settings.h:15223
Settings & set(const Processing::Filters::Hole::Repair::HoleSize &value)
Set Processing::Filters::Hole::Repair::HoleSize.
Definition Settings.h:15132
const Settings::RegionOfInterest::Box::Enabled & get() const
Definition Settings.h:15914
const Settings::Processing::Color::Experimental::Mode & get() const
Definition Settings.h:15498
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Correction::Strength &value)
Set Processing::Filters::Experimental::ContrastDistortion::Correction::Strength.
Definition Settings.h:15083
Settings & set(const RegionOfInterest::Box::Enabled &value)
Set RegionOfInterest::Box::Enabled.
Definition Settings.h:15326
const Settings::Processing::Filters::Hole::Repair::HoleSize & get() const
Definition Settings.h:15681
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition Settings.h:15612
Settings & set(const RegionOfInterest::Box::Extents &value)
Set RegionOfInterest::Box::Extents.
Definition Settings.h:15333
const Settings::Processing::Color::Balance::Blue & get() const
Definition Settings.h:15465
Settings & set(const Processing::Resampling::Mode &value)
Set Processing::Resampling::Mode.
Definition Settings.h:15293
const Settings::Processing::Filters::Hole::Repair::Enabled & get() const
Definition Settings.h:15672
const Acquisitions & acquisitions() const
Get Acquisitions.
Definition Settings.h:14874
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:14757
const Settings::Processing::Filters::Reflection & get() const
Definition Settings.h:15810
Settings & set(const Processing::Filters::Experimental &value)
Set Processing::Filters::Experimental.
Definition Settings.h:15055
const Settings::Processing::Filters::Smoothing & get() const
Definition Settings.h:15847
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:14502
const Settings::Processing::Filters & get() const
Definition Settings.h:15514
Settings & set(const Processing::Color::Experimental &value)
Set Processing::Color::Experimental.
Definition Settings.h:14992
void save(const std::string &fileName) const
Save to the given file.
Settings & set(const Engine &value)
Set Engine.
Definition Settings.h:14931
Settings & set(const RegionOfInterest::Depth::Range &value)
Set RegionOfInterest::Depth::Range.
Definition Settings.h:15375
const Settings::Processing::Color::Experimental & get() const
Definition Settings.h:15489
const Settings::Processing::Filters::Noise::Repair & get() const
Definition Settings.h:15737
Settings & set(const Processing::Resampling &value)
Set Processing::Resampling.
Definition Settings.h:15286
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Removal &value)
Set Processing::Filters::Experimental::ContrastDistortion::Removal.
Definition Settings.h:15090
const Settings::RegionOfInterest::Box::PointA & get() const
Definition Settings.h:15930
Settings & set(const Processing::Color &value)
Set Processing::Color.
Definition Settings.h:14957
Settings & set(const Processing::Filters::Outlier &value)
Set Processing::Filters::Outlier.
Definition Settings.h:15202
bool operator==(const Settings &other) const
Equality operator.
Acquisitions & acquisitions()
Get Acquisitions.
Definition Settings.h:14880
Settings & set(const Processing::Filters::Reflection::Removal &value)
Set Processing::Filters::Reflection::Removal.
Definition Settings.h:15237
const Settings::Processing::Filters::Noise::Suppression::Enabled & get() const
Definition Settings.h:15765
const Settings::Engine & get() const
Definition Settings.h:15435
const Settings::Processing::Filters::Cluster & get() const
Definition Settings.h:15522
const Settings::Processing::Filters::Noise::Repair::Enabled & get() const
Definition Settings.h:15746
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:14985
Settings & set(const RegionOfInterest::Box::PointO &value)
Set RegionOfInterest::Box::PointO.
Definition Settings.h:15354
const Settings::Sampling::Color & get() const
Definition Settings.h:15982
Settings & set(const Processing::Filters::Cluster::Removal &value)
Set Processing::Filters::Cluster::Removal.
Definition Settings.h:15027
Settings & set(const RegionOfInterest::Box &value)
Set RegionOfInterest::Box.
Definition Settings.h:15319
Settings & set(const Processing::Filters::Noise::Suppression &value)
Set Processing::Filters::Noise::Suppression.
Definition Settings.h:15188
const Engine & engine() const
Get Engine.
Definition Settings.h:14919
Diagnostics & diagnostics()
Get Diagnostics.
Definition Settings.h:14899
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition Settings.h:15728
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition Settings.h:15541
Sampling & sampling()
Get Sampling.
Definition Settings.h:15388
Settings & set(const Processing::Filters::Reflection::Removal::Enabled &value)
Set Processing::Filters::Reflection::Removal::Enabled.
Definition Settings.h:15244
Processing & processing()
Get Processing.
Definition Settings.h:14944
Settings & set(const RegionOfInterest::Box::PointA &value)
Set RegionOfInterest::Box::PointA.
Definition Settings.h:15340
Settings & set(const Diagnostics::Enabled &value)
Set Diagnostics::Enabled.
Definition Settings.h:14912
const Settings::Processing::Filters::Noise & get() const
Definition Settings.h:15699
const Settings::Diagnostics::Enabled & get() const
Definition Settings.h:15429
const Settings::Processing::Filters::Cluster::Removal & get() const
Definition Settings.h:15531
const Settings::Processing::Filters::Reflection::Removal::Mode & get() const
Definition Settings.h:15839
std::string toString() const
Get the value as string.
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition Settings.h:15600
const Settings::RegionOfInterest::Box::PointB & get() const
Definition Settings.h:15938
Settings & set(const Processing::Filters::Experimental::ContrastDistortion &value)
Set Processing::Filters::Experimental::ContrastDistortion.
Definition Settings.h:15062
Settings & set(const Sampling::Pixel &value)
Set Sampling::Pixel.
Definition Settings.h:15408
Settings & set(const Processing::Filters::Hole::Repair::Strictness &value)
Set Processing::Filters::Hole::Repair::Strictness.
Definition Settings.h:15139
Settings & set(const Processing::Color::Gamma &value)
Set Processing::Color::Gamma.
Definition Settings.h:15006
Settings & set(const Processing::Filters::Cluster::Removal::Enabled &value)
Set Processing::Filters::Cluster::Removal::Enabled.
Definition Settings.h:15034
const Settings::RegionOfInterest::Depth::Range & get() const
Definition Settings.h:15970
const Settings::Sampling & get() const
Definition Settings.h:15976
Settings & set(const Processing::Filters::Noise::Removal::Threshold &value)
Set Processing::Filters::Noise::Removal::Threshold.
Definition Settings.h:15167
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled &value)
Set Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled.
Definition Settings.h:15076
Settings & set(const Acquisitions &value)
Set Acquisitions.
Definition Settings.h:14886
Settings & set(const Processing::Filters::Smoothing::Gaussian::Sigma &value)
Set Processing::Filters::Smoothing::Gaussian::Sigma.
Definition Settings.h:15279
const Diagnostics & diagnostics() const
Get Diagnostics.
Definition Settings.h:14893
bool operator!=(const Settings &other) const
Inequality operator.
Settings & set(const Processing::Filters::Noise::Removal &value)
Set Processing::Filters::Noise::Removal.
Definition Settings.h:15153
Settings & set(const Processing::Filters::Noise::Repair &value)
Set Processing::Filters::Noise::Repair.
Definition Settings.h:15174
Settings & set(const Processing::Filters::Cluster::Removal::MaxNeighborDistance &value)
Set Processing::Filters::Cluster::Removal::MaxNeighborDistance.
Definition Settings.h:15041
Settings & set(const Processing::Filters::Outlier::Removal &value)
Set Processing::Filters::Outlier::Removal.
Definition Settings.h:15209
Settings & set(const RegionOfInterest &value)
Set RegionOfInterest.
Definition Settings.h:15312
Settings & set(const Processing::Filters::Noise::Removal::Enabled &value)
Set Processing::Filters::Noise::Removal::Enabled.
Definition Settings.h:15160
Engine & engine()
Get Engine.
Definition Settings.h:14925
Settings & set(const Processing::Filters::Hole::Repair &value)
Set Processing::Filters::Hole::Repair.
Definition Settings.h:15118
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Correction &value)
Set Processing::Filters::Experimental::ContrastDistortion::Correction.
Definition Settings.h:15069
const Settings::Processing::Color & get() const
Definition Settings.h:15449
Settings & set(const Processing::Filters::Noise::Repair::Enabled &value)
Set Processing::Filters::Noise::Repair::Enabled.
Definition Settings.h:15181
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition Settings.h:15829
Settings & set(const Processing::Filters::Noise::Suppression::Enabled &value)
Set Processing::Filters::Noise::Suppression::Enabled.
Definition Settings.h:15195
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition Settings.h:15819
Settings & set(const Processing::Color::Balance::Green &value)
Set Processing::Color::Balance::Green.
Definition Settings.h:14978
Settings & set(const Processing::Filters &value)
Set Processing::Filters.
Definition Settings.h:15013
const RegionOfInterest & regionOfInterest() const
Get RegionOfInterest.
Definition Settings.h:15300
const Settings::Processing::Resampling::Mode & get() const
Definition Settings.h:15892
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition Settings.h:15802
Settings & set(const Processing::Color::Balance::Blue &value)
Set Processing::Color::Balance::Blue.
Definition Settings.h:14971
const Settings::Processing::Filters::Smoothing::Gaussian & get() const
Definition Settings.h:15856
friend std::ostream & operator<<(std::ostream &stream, const Settings &value)
Operator to send the value as string to a stream.
Definition Settings.h:16063
NodeType
Definition NodeType.h:55
The main Zivid namespace. All Zivid code is found here.
Definition Application.h:54
Point with three coordinates as float.
Definition Point.h:60