30 #if __has_include("SettingsInternal.h") 31 #include "SettingsInternal.h" 34 class SettingsInternal;
39 class SettingsInternal;
45 #pragma warning(disable : 4251) 66 explicit Settings(
const std::string &fileName);
69 static constexpr
bool isContainer{
true};
72 static constexpr
const char *path{
""};
75 static constexpr
const char *name{
"Settings"};
78 void set(
const std::string &fullPath,
const std::string &value);
81 std::string getString(
const std::string &fullPath)
const;
90 static constexpr
bool isContainer{
false};
93 static constexpr
const char *path{
"BlueBalance"};
96 static constexpr
const char *name{
"BlueBalance"};
103 std::is_nothrow_move_constructible<ValueType>::value)
111 return {std::numeric_limits<ValueType>::lowest(),
112 std::numeric_limits<ValueType>::max()};
116 void setFromString(
const std::string &value) { m_value = std::stod(value); }
119 std::string
toString()
const {
return std::to_string(m_value); }
123 return m_value == other.m_value;
128 return m_value != other.m_value;
133 return m_value < other.m_value;
138 return m_value > other.m_value;
149 value.
setFromString(std::string{std::istreambuf_iterator<char>{stream},
150 std::istreambuf_iterator<char>{}});
165 static constexpr
bool isContainer{
false};
168 static constexpr
const char *path{
"RedBalance"};
171 static constexpr
const char *name{
"RedBalance"};
178 std::is_nothrow_move_constructible<ValueType>::value)
186 return {std::numeric_limits<ValueType>::lowest(),
187 std::numeric_limits<ValueType>::max()};
191 void setFromString(
const std::string &value) { m_value = std::stod(value); }
194 std::string
toString()
const {
return std::to_string(m_value); }
198 return m_value == other.m_value;
203 return m_value != other.m_value;
208 return m_value < other.m_value;
213 return m_value > other.m_value;
224 value.
setFromString(std::string{std::istreambuf_iterator<char>{stream},
225 std::istreambuf_iterator<char>{}});
241 static constexpr
bool isContainer{
false};
244 static constexpr
const char *path{
"ExposureTime"};
247 static constexpr
const char *name{
"ExposureTime"};
254 std::is_nothrow_move_constructible<ValueType>::value)
271 std::string
toString()
const {
return std::to_string(m_value.count()); }
275 return m_value == other.m_value;
280 return m_value != other.m_value;
285 return m_value < other.m_value;
290 return m_value > other.m_value;
301 value.
setFromString(std::string{std::istreambuf_iterator<char>{stream},
302 std::istreambuf_iterator<char>{}});
317 static constexpr
bool isContainer{
false};
320 static constexpr
const char *path{
"Iris"};
323 static constexpr
const char *name{
"Iris"};
330 std::is_nothrow_move_constructible<ValueType>::value)
341 m_value = std::stoull(value);
345 std::string
toString()
const {
return std::to_string(m_value); }
349 return m_value == other.m_value;
354 return m_value != other.m_value;
370 value.
setFromString(std::string{std::istreambuf_iterator<char>{stream},
371 std::istreambuf_iterator<char>{}});
386 static constexpr
bool isContainer{
false};
389 static constexpr
const char *path{
"Brightness"};
392 static constexpr
const char *name{
"Brightness"};
399 std::is_nothrow_move_constructible<ValueType>::value)
409 void setFromString(
const std::string &value) { m_value = std::stod(value); }
412 std::string
toString()
const {
return std::to_string(m_value); }
416 return m_value == other.m_value;
421 return m_value != other.m_value;
426 return m_value < other.m_value;
431 return m_value > other.m_value;
442 value.
setFromString(std::string{std::istreambuf_iterator<char>{stream},
443 std::istreambuf_iterator<char>{}});
461 static constexpr
bool isContainer{
false};
464 static constexpr
const char *path{
"Bidirectional"};
467 static constexpr
const char *name{
"Bidirectional"};
474 std::is_nothrow_move_constructible<ValueType>::value)
481 void setFromString(
const std::string &value) { m_value = (value ==
"yes"); }
484 std::string
toString()
const {
return m_value ?
"yes" :
"no"; }
487 explicit operator bool()
const {
return m_value; }
491 return m_value == other.m_value;
496 return m_value != other.m_value;
508 value.
setFromString(std::string{std::istreambuf_iterator<char>{stream},
509 std::istreambuf_iterator<char>{}});
523 explicit Filters(
const std::string &fileName);
526 static constexpr
bool isContainer{
true};
529 static constexpr
const char *path{
"Filters"};
532 static constexpr
const char *name{
"Filters"};
535 void set(
const std::string &fullPath,
const std::string &value);
538 std::string getString(
const std::string &fullPath)
const;
546 explicit Contrast(
const std::string &fileName);
549 static constexpr
bool isContainer{
true};
552 static constexpr
const char *path{
"Filters/Contrast"};
555 static constexpr
const char *name{
"Contrast"};
558 void set(
const std::string &fullPath,
const std::string &value);
561 std::string getString(
const std::string &fullPath)
const;
571 static constexpr
bool isContainer{
false};
574 static constexpr
const char *path{
"Filters/Contrast/Threshold"};
577 static constexpr
const char *name{
"Threshold"};
584 std::is_nothrow_move_constructible<ValueType>::value)
592 return {std::numeric_limits<ValueType>::lowest(),
593 std::numeric_limits<ValueType>::max()};
598 m_value = std::stod(value);
602 std::string
toString()
const {
return std::to_string(m_value); }
606 return m_value == other.m_value;
611 return m_value != other.m_value;
616 return m_value < other.m_value;
621 return m_value > other.m_value;
634 std::string{std::istreambuf_iterator<char>{stream},
635 std::istreambuf_iterator<char>{}});
650 if (value.value() < value.range().min() ||
651 value.value() > value.range().max()) {
652 throw std::out_of_range(
"Contrast: " + std::to_string(value.value()) +
653 ", is out of range: {" +
654 std::to_string(value.range().min()) +
", " +
655 std::to_string(value.range().max()) +
"}");
666 template <
typename F>
void forEach(
const F &f)
const { f(m_threshold); }
670 template <
typename F>
void forEach(
const F &f) { f(m_threshold); }
692 void save(
const std::string &fileName)
const;
695 void setFromString(
const std::string &value);
699 value.
setFromString(std::string{std::istreambuf_iterator<char>{stream},
700 std::istreambuf_iterator<char>{}});
705 void load(
const std::string &fileName);
708 bool operator==(
const Contrast &other)
const;
711 bool operator!=(
const Contrast &other)
const;
720 explicit Outlier(
const std::string &fileName);
723 static constexpr
bool isContainer{
true};
726 static constexpr
const char *path{
"Filters/Outlier"};
729 static constexpr
const char *name{
"Outlier"};
732 void set(
const std::string &fullPath,
const std::string &value);
735 std::string getString(
const std::string &fullPath)
const;
746 static constexpr
bool isContainer{
false};
749 static constexpr
const char *path{
"Filters/Outlier/Enabled"};
752 static constexpr
const char *name{
"Enabled"};
759 std::is_nothrow_move_constructible<ValueType>::value)
767 m_value = (value ==
"yes");
771 std::string
toString()
const {
return m_value ?
"yes" :
"no"; }
774 explicit operator bool()
const {
return m_value; }
778 return m_value == other.m_value;
783 return m_value != other.m_value;
795 std::string{std::istreambuf_iterator<char>{stream},
796 std::istreambuf_iterator<char>{}});
812 static constexpr
bool isContainer{
false};
815 static constexpr
const char *path{
"Filters/Outlier/Threshold"};
818 static constexpr
const char *name{
"Threshold"};
825 std::is_nothrow_move_constructible<ValueType>::value)
833 return {std::numeric_limits<ValueType>::lowest(),
834 std::numeric_limits<ValueType>::max()};
839 m_value = std::stod(value);
843 std::string
toString()
const {
return std::to_string(m_value); }
847 return m_value == other.m_value;
852 return m_value != other.m_value;
857 return m_value < other.m_value;
862 return m_value > other.m_value;
875 std::string{std::istreambuf_iterator<char>{stream},
876 std::istreambuf_iterator<char>{}});
904 if (value.value() < value.range().min() ||
905 value.value() > value.range().max()) {
906 throw std::out_of_range(
"Outlier: " + std::to_string(value.value()) +
907 ", is out of range: {" +
908 std::to_string(value.range().min()) +
", " +
909 std::to_string(value.range().max()) +
"}");
920 template <
typename F>
void forEach(
const F &f)
const {
927 template <
typename F>
void forEach(
const F &f) {
956 void save(
const std::string &fileName)
const;
959 void setFromString(
const std::string &value);
963 value.
setFromString(std::string{std::istreambuf_iterator<char>{stream},
964 std::istreambuf_iterator<char>{}});
969 void load(
const std::string &fileName);
972 bool operator==(
const Outlier &other)
const;
975 bool operator!=(
const Outlier &other)
const;
984 explicit Saturated(
const std::string &fileName);
987 static constexpr
bool isContainer{
true};
990 static constexpr
const char *path{
"Filters/Saturated"};
993 static constexpr
const char *name{
"Saturated"};
996 void set(
const std::string &fullPath,
const std::string &value);
999 std::string getString(
const std::string &fullPath)
const;
1010 static constexpr
bool isContainer{
false};
1013 static constexpr
const char *path{
"Filters/Saturated/Enabled"};
1016 static constexpr
const char *name{
"Enabled"};
1023 std::is_nothrow_move_constructible<ValueType>::value)
1031 m_value = (value ==
"yes");
1035 std::string
toString()
const {
return m_value ?
"yes" :
"no"; }
1038 explicit operator bool()
const {
return m_value; }
1042 return m_value == other.m_value;
1047 return m_value != other.m_value;
1059 std::string{std::istreambuf_iterator<char>{stream},
1060 std::istreambuf_iterator<char>{}});
1083 template <
typename F>
void forEach(
const F &f)
const { f(m_enabled); }
1087 template <
typename F>
void forEach(
const F &f) { f(m_enabled); }
1109 void save(
const std::string &fileName)
const;
1112 void setFromString(
const std::string &value);
1116 value.
setFromString(std::string{std::istreambuf_iterator<char>{stream},
1117 std::istreambuf_iterator<char>{}});
1122 void load(
const std::string &fileName);
1125 bool operator==(
const Saturated &other)
const;
1128 bool operator!=(
const Saturated &other)
const;
1138 explicit Reflection(
const std::string &fileName);
1141 static constexpr
bool isContainer{
true};
1144 static constexpr
const char *path{
"Filters/Reflection"};
1147 static constexpr
const char *name{
"Reflection"};
1150 void set(
const std::string &fullPath,
const std::string &value);
1153 std::string getString(
const std::string &fullPath)
const;
1166 static constexpr
bool isContainer{
false};
1169 static constexpr
const char *path{
"Filters/Reflection/Enabled"};
1172 static constexpr
const char *name{
"Enabled"};
1179 std::is_nothrow_move_constructible<ValueType>::value)
1187 m_value = (value ==
"yes");
1191 std::string
toString()
const {
return m_value ?
"yes" :
"no"; }
1194 explicit operator bool()
const {
return m_value; }
1198 return m_value == other.m_value;
1203 return m_value != other.m_value;
1215 std::string{std::istreambuf_iterator<char>{stream},
1216 std::istreambuf_iterator<char>{}});
1239 template <
typename F>
void forEach(
const F &f)
const { f(m_enabled); }
1243 template <
typename F>
void forEach(
const F &f) { f(m_enabled); }
1265 void save(
const std::string &fileName)
const;
1268 void setFromString(
const std::string &value);
1272 value.
setFromString(std::string{std::istreambuf_iterator<char>{stream},
1273 std::istreambuf_iterator<char>{}});
1278 void load(
const std::string &fileName);
1281 bool operator==(
const Reflection &other)
const;
1284 bool operator!=(
const Reflection &other)
const;
1303 if (value.value() < value.range().min() ||
1304 value.value() > value.range().max()) {
1305 throw std::out_of_range(
"Filters: " + std::to_string(value.value()) +
1306 ", is out of range: {" +
1307 std::to_string(value.range().min()) +
", " +
1308 std::to_string(value.range().max()) +
"}");
1311 m_contrast.set(value);
1331 m_outlier.
set(value);
1338 if (value.value() < value.range().min() ||
1339 value.value() > value.range().max()) {
1340 throw std::out_of_range(
"Filters: " + std::to_string(value.value()) +
1341 ", is out of range: {" +
1342 std::to_string(value.range().min()) +
", " +
1343 std::to_string(value.range().max()) +
"}");
1346 m_outlier.set(value);
1357 m_saturated = value;
1366 m_saturated.
set(value);
1377 m_reflection = value;
1386 m_reflection.
set(value);
1392 template <
typename F>
void forEach(
const F &f)
const {
1411 m_contrast.traverseValues(f);
1412 m_outlier.traverseValues(f);
1413 m_saturated.traverseValues(f);
1414 m_reflection.traverseValues(f);
1420 m_contrast.traverseValues(f);
1421 m_outlier.traverseValues(f);
1422 m_saturated.traverseValues(f);
1423 m_reflection.traverseValues(f);
1436 void save(
const std::string &fileName)
const;
1439 void setFromString(
const std::string &value);
1443 value.
setFromString(std::string{std::istreambuf_iterator<char>{stream},
1444 std::istreambuf_iterator<char>{}});
1449 void load(
const std::string &fileName);
1452 bool operator==(
const Filters &other)
const;
1455 bool operator!=(
const Filters &other)
const;
1465 if (value.value() < value.range().min() ||
1466 value.value() > value.range().max()) {
1467 throw std::out_of_range(
"Settings: " + std::to_string(value.value()) +
1468 ", is out of range: {" +
1469 std::to_string(value.range().min()) +
", " +
1470 std::to_string(value.range().max()) +
"}");
1473 m_blueBalance = value;
1486 if (value.value() < value.range().min() ||
1487 value.value() > value.range().max()) {
1488 throw std::out_of_range(
"Settings: " + std::to_string(value.value()) +
1489 ", is out of range: {" +
1490 std::to_string(value.range().min()) +
", " +
1491 std::to_string(value.range().max()) +
"}");
1494 m_redBalance = value;
1507 if (value.value().count() < value.range().min().count() ||
1508 value.value().count() > value.range().max().count()) {
1509 throw std::out_of_range(
1510 "Settings: " + std::to_string(value.value().count()) +
1511 ", is out of range: {" + std::to_string(value.range().min().count()) +
1512 ", " + std::to_string(value.range().max().count()) +
"}");
1515 m_exposureTime = value;
1528 if (value.value() < value.range().min() ||
1529 value.value() > value.range().max()) {
1530 throw std::out_of_range(
"Settings: " + std::to_string(value.value()) +
1531 ", is out of range: {" +
1532 std::to_string(value.range().min()) +
", " +
1533 std::to_string(value.range().max()) +
"}");
1549 if (value.value() < value.range().min() ||
1550 value.value() > value.range().max()) {
1551 throw std::out_of_range(
"Settings: " + std::to_string(value.value()) +
1552 ", is out of range: {" +
1553 std::to_string(value.range().min()) +
", " +
1554 std::to_string(value.range().max()) +
"}");
1557 m_brightness = value;
1570 m_bidirectional = value;
1592 m_filters.
set(value);
1599 if (value.value() < value.range().min() ||
1600 value.value() > value.range().max()) {
1601 throw std::out_of_range(
"Settings: " + std::to_string(value.value()) +
1602 ", is out of range: {" +
1603 std::to_string(value.range().min()) +
", " +
1604 std::to_string(value.range().max()) +
"}");
1607 m_filters.set(value);
1614 m_filters.
set(value);
1621 m_filters.
set(value);
1628 if (value.value() < value.range().min() ||
1629 value.value() > value.range().max()) {
1630 throw std::out_of_range(
"Settings: " + std::to_string(value.value()) +
1631 ", is out of range: {" +
1632 std::to_string(value.range().min()) +
", " +
1633 std::to_string(value.range().max()) +
"}");
1636 m_filters.set(value);
1643 m_filters.
set(value);
1650 m_filters.
set(value);
1657 m_filters.
set(value);
1664 m_filters.
set(value);
1670 template <
typename F>
void forEach(
const F &f)
const {
1701 m_filters.traverseValues(f);
1713 m_filters.traverseValues(f);
1725 void save(
const std::string &fileName)
const;
1728 void setFromString(
const std::string &value);
1732 value.
setFromString(std::string{std::istreambuf_iterator<char>{stream},
1733 std::istreambuf_iterator<char>{}});
1738 void load(
const std::string &fileName);
1741 bool operator==(
const Settings &other)
const;
1744 bool operator!=(
const Settings &other)
const;
1746 #ifndef DOXYGEN_SHOULD_SKIP_THIS 1747 SettingsInternal &getSettingsInternal() {
return *m_internal; }
1750 const SettingsInternal &getSettingsInternal()
const {
return *m_internal; }
1751 #endif // DOXYGEN_SHOULD_SKIP_THIS 1753 std::unique_ptr<SettingsInternal> m_internal;
1758 #pragma warning(pop) friend std::istream & operator>>(std::istream &stream, Bidirectional &value)
Operator to set the value from a stream
Definition: Settings.h:506
bool operator>(const Iris &other) const
Comparison operator
Definition: Settings.h:361
void setFromString(const std::string &value)
Set the value from string
Definition: Settings.h:409
const Brightness & brightness() const
Get Brightness
Definition: Settings.h:1561
constexpr Enabled(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: Settings.h:1178
void setFromString(const std::string &value)
Set the value from string
Definition: Settings.h:116
const Saturated & saturated() const
Get Saturated
Definition: Settings.h:1361
friend std::istream & operator>>(std::istream &stream, ExposureTime &value)
Operator to set the value from a stream
Definition: Settings.h:300
constexpr Enabled(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: Settings.h:1022
friend std::istream & operator>>(std::istream &stream, Threshold &value)
Operator to set the value from a stream
Definition: Settings.h:872
friend std::ostream & operator<<(std::ostream &stream, const Outlier &value)
Operator to send the value as string to a stream
Definition: Settings.h:950
bool operator==(const ExposureTime &other) const
Comparison operator
Definition: Settings.h:274
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:1392
bool operator!=(const Iris &other) const
Comparison operator
Definition: Settings.h:353
bool operator<(const RedBalance &other) const
Comparison operator
Definition: Settings.h:207
const ValueType & value() const
Get the value
Definition: Settings.h:403
std::string toString() const
Get the value as string
Definition: Settings.h:194
White balance of red channel in the camera
Definition: Settings.h:159
Detect and remove points likely to arise from reflections (useful for shiny materials)
Definition: Settings.h:1133
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:670
friend std::istream & operator>>(std::istream &stream, Filters &value)
Operator to set the value from a stream
Definition: Settings.h:1442
void traverseValues(const F &f) const
Traverse the entire tree using the given function with the value of the member as parameter...
Definition: Settings.h:1091
friend std::istream & operator>>(std::istream &stream, Enabled &value)
Operator to set the value from a stream
Definition: Settings.h:1057
bool operator<(const Threshold &other) const
Comparison operator
Definition: Settings.h:856
const Threshold & threshold() const
Get Threshold
Definition: Settings.h:662
Range< ValueType > range() const
The range of valid values
Definition: Settings.h:832
const Bidirectional & bidirectional() const
Get Bidirectional
Definition: Settings.h:1574
Toggle on or off various filters
Definition: Settings.h:518
Enable or disable the reflection filter.
Definition: Settings.h:1158
void traverseValues(const F &f) const
Traverse the entire tree using the given function with the value of the member as parameter...
Definition: Settings.h:1410
friend std::istream & operator>>(std::istream &stream, Contrast &value)
Operator to set the value from a stream
Definition: Settings.h:698
const BlueBalance & blueBalance() const
Get BlueBalance
Definition: Settings.h:1477
double ValueType
The type of the underlying value
Definition: Settings.h:162
Class describing a range of values for a given type T The range boudaries for both minimum and maximu...
Definition: Range.h:24
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:1682
const RedBalance & redBalance() const
Get RedBalance
Definition: Settings.h:1498
std::string toString() const
Get the value as string
Definition: Settings.h:843
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:787
void setFromString(const std::string &value)
Set the value from string
Definition: Settings.h:766
Enable or disable the use of bi-directional patterns (requires twice as many patterns as well as incr...
Definition: Settings.h:453
bool operator==(const Bidirectional &other) const
Comparison operator
Definition: Settings.h:490
bool operator>(const Threshold &other) const
Comparison operator
Definition: Settings.h:620
Discard points with low contrast values
Definition: Settings.h:541
friend std::ostream & operator<<(std::ostream &stream, const ExposureTime &value)
Operator to serialize the value to a stream
Definition: Settings.h:294
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:1079
const Filters & filters() const
Get Filters
Definition: Settings.h:1587
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:777
static const Enabled no
Off/disabled.
Definition: Settings.h:1163
void traverseValues(const F &f) const
Traverse the entire tree using the given function with the value of the member as parameter...
Definition: Settings.h:1694
bool operator==(const Brightness &other) const
Comparison operator
Definition: Settings.h:415
friend std::ostream & operator<<(std::ostream &stream, const Settings &value)
Operator to send the value as string to a stream
Definition: Settings.h:1720
bool operator>(const ExposureTime &other) const
Comparison operator
Definition: Settings.h:289
friend std::istream & operator>>(std::istream &stream, Threshold &value)
Operator to set the value from a stream
Definition: Settings.h:631
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:1041
const Iris & iris() const
Get Iris
Definition: Settings.h:1540
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:1243
bool operator!=(const ExposureTime &other) const
Comparison operator
Definition: Settings.h:279
constexpr ExposureTime(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: Settings.h:253
double ValueType
The type of the underlying value
Definition: Settings.h:568
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:927
White balance of blue channel in the camera
Definition: Settings.h:84
friend std::istream & operator>>(std::istream &stream, Enabled &value)
Operator to set the value from a stream
Definition: Settings.h:1213
void setFromString(const std::string &value)
Set from the given string
std::string toString() const
Get the value as string
Definition: Settings.h:771
constexpr Threshold(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: Settings.h:583
std::string toString() const
Get the value as string
Definition: Settings.h:412
void setFromString(const std::string &value)
Set the value from string
Definition: Settings.h:1186
static const Bidirectional yes
On/enabled.
Definition: Settings.h:457
bool operator==(const BlueBalance &other) const
Comparison operator
Definition: Settings.h:122
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:1051
Range< ValueType > range() const
The range of valid values
Definition: Settings.h:337
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:1401
friend std::ostream & operator<<(std::ostream &stream, const BlueBalance &value)
Operator to serialize the value to a stream
Definition: Settings.h:142
constexpr Brightness(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: Settings.h:398
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:1239
Range< ValueType > range() const
The range of valid values
Definition: Settings.h:185
void traverseValues(const F &f)
Traverse all members using the given function with the value of the member as parameter
Definition: Settings.h:941
void setFromString(const std::string &value)
Set the value from string
Definition: Settings.h:266
const ExposureTime & exposureTime() const
Get ExposureTime
Definition: Settings.h:1519
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:1046
void setFromString(const std::string &value)
Set from the given string
bool operator==(const Iris &other) const
Comparison operator
Definition: Settings.h:348
bool operator==(const Threshold &other) const
Comparison operator
Definition: Settings.h:846
void setFromString(const std::string &value)
Set the value from string
Definition: Settings.h:597
static const Enabled no
Off/disabled.
Definition: Settings.h:743
const Reflection & reflection() const
Get Reflection
Definition: Settings.h:1381
void setFromString(const std::string &value)
Set from the given string
friend std::ostream & operator<<(std::ostream &stream, const Brightness &value)
Operator to serialize the value to a stream
Definition: Settings.h:435
const ValueType & value() const
Get the value
Definition: Settings.h:182
bool operator!=(const Brightness &other) const
Comparison operator
Definition: Settings.h:420
std::string toString() const
Get the value as string
Definition: Settings.h:345
friend std::istream & operator>>(std::istream &stream, Enabled &value)
Operator to set the value from a stream
Definition: Settings.h:793
bool operator!=(const Threshold &other) const
Comparison operator
Definition: Settings.h:610
void setFromString(const std::string &value)
Set from the given string
void traverseValues(const F &f)
Traverse all members using the given function with the value of the member as parameter
Definition: Settings.h:1706
size_t ValueType
The type of the underlying value
Definition: Settings.h:314
static const Enabled yes
On/enabled.
Definition: Settings.h:742
std::string toString() const
Get the value as string
std::string toString() const
Get the value as string
Definition: Settings.h:484
void setFromString(const std::string &value)
Set the value from string
Definition: Settings.h:340
Enable or disable the saturation filter
Definition: Settings.h:1002
bool ValueType
The type of the underlying value
Definition: Settings.h:456
bool ValueType
The type of the underlying value
Definition: Settings.h:1161
friend std::ostream & operator<<(std::ostream &stream, const Contrast &value)
Operator to send the value as string to a stream
Definition: Settings.h:686
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:920
friend std::istream & operator>>(std::istream &stream, Reflection &value)
Operator to set the value from a stream
Definition: Settings.h:1271
bool operator==(const Threshold &other) const
Comparison operator
Definition: Settings.h:605
Enable or disable the outlier filter
Definition: Settings.h:738
std::chrono::microseconds ValueType
The type of the underlying value
Definition: Settings.h:238
Definition: Application.h:19
bool operator<(const BlueBalance &other) const
Comparison operator
Definition: Settings.h:132
friend std::ostream & operator<<(std::ostream &stream, const Filters &value)
Operator to send the value as string to a stream
Definition: Settings.h:1430
bool operator!=(const Threshold &other) const
Comparison operator
Definition: Settings.h:851
Range< ValueType > range() const
The range of valid values
Definition: Settings.h:110
double ValueType
The type of the underlying value
Definition: Settings.h:383
const ValueType & value() const
Get the value
Definition: Settings.h:258
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:1235
Range< ValueType > range() const
The range of valid values
Definition: Settings.h:591
bool operator>(const RedBalance &other) const
Comparison operator
Definition: Settings.h:212
bool ValueType
The type of the underlying value
Definition: Settings.h:741
Disregard points with contrast below the given value
Definition: Settings.h:565
bool ValueType
The type of the underlying value
Definition: Settings.h:1005
bool operator!=(const Bidirectional &other) const
Comparison operator
Definition: Settings.h:495
double ValueType
The type of the underlying value
Definition: Settings.h:87
Definitions for export of DLL interfaces
static const Bidirectional no
Off/disabled.
Definition: Settings.h:458
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:1087
friend std::ostream & operator<<(std::ostream &stream, const Saturated &value)
Operator to send the value as string to a stream
Definition: Settings.h:1103
void traverseValues(const F &f) const
Traverse the entire tree using the given function with the value of the member as parameter...
Definition: Settings.h:1247
friend std::istream & operator>>(std::istream &stream, Settings &value)
Operator to set the value from a stream
Definition: Settings.h:1731
void traverseValues(const F &f)
Traverse all members using the given function with the value of the member as parameter
Definition: Settings.h:1253
Class describing a range of values
const Threshold & threshold() const
Get Threshold
Definition: Settings.h:916
constexpr Enabled(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: Settings.h:758
friend std::istream & operator>>(std::istream &stream, BlueBalance &value)
Operator to set the value from a stream
Definition: Settings.h:148
constexpr Bidirectional(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: Settings.h:473
friend std::ostream & operator<<(std::ostream &stream, const Bidirectional &value)
Operator to serialize the value to a stream
Definition: Settings.h:500
constexpr RedBalance(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: Settings.h:177
double ValueType
The type of the underlying value
Definition: Settings.h:809
constexpr Iris(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: Settings.h:329
Discard pixels that are saturated in the image
Definition: Settings.h:979
friend std::istream & operator>>(std::istream &stream, Outlier &value)
Operator to set the value from a stream
Definition: Settings.h:962
Range< ValueType > range() const
The range of valid values
Definition: Settings.h:261
void setFromString(const std::string &value)
Set from the given string
void setFromString(const std::string &value)
Set the value from string
Definition: Settings.h:481
void traverseValues(const F &f)
Traverse all members using the given function with the value of the member as parameter
Definition: Settings.h:1097
std::string toString() const
Get the value as string
Mark point as an outlier if neighboring pixel has a 3D distance above given threshold
Definition: Settings.h:806
ZIVID_COMMON std::string toString(const std::exception &exception)
Get string representation of the exception
const ValueType & value() const
Get the value
Definition: Settings.h:763
bool operator==(const RedBalance &other) const
Comparison operator
Definition: Settings.h:197
friend std::ostream & operator<<(std::ostream &stream, const Reflection &value)
Operator to send the value as string to a stream
Definition: Settings.h:1259
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:895
Exposure time for each single image in the measurement.
Definition: Settings.h:235
const Contrast & contrast() const
Get Contrast
Definition: Settings.h:1298
std::string toString() const
Get the value as string
Definition: Settings.h:1035
const ValueType & value() const
Get the value
Definition: Settings.h:829
friend std::ostream & operator<<(std::ostream &stream, const Threshold &value)
Operator to serialize the value to a stream
Definition: Settings.h:625
constexpr Threshold(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: Settings.h:824
friend std::ostream & operator<<(std::ostream &stream, const Iris &value)
Operator to serialize the value to a stream
Definition: Settings.h:364
std::string toString() const
Get the value as string
Definition: Settings.h:271
friend std::istream & operator>>(std::istream &stream, Brightness &value)
Operator to set the value from a stream
Definition: Settings.h:441
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:1207
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:1670
const ValueType & value() const
Get the value
Definition: Settings.h:1183
void setFromString(const std::string &value)
Set the value from string
Definition: Settings.h:191
bool operator<(const Iris &other) const
Comparison operator
Definition: Settings.h:358
std::string toString() const
Get the value as string
std::string toString() const
Get the value as string
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:1197
std::string toString() const
Get the value as string
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:1202
const ValueType & value() const
Get the value
Definition: Settings.h:1027
const ValueType & value() const
Get the value
Definition: Settings.h:107
friend std::ostream & operator<<(std::ostream &stream, const RedBalance &value)
Operator to serialize the value to a stream
Definition: Settings.h:217
void setFromString(const std::string &value)
Set from the given string
Outlier filter based on connected components
Definition: Settings.h:715
void set(const std::string &fullPath, const std::string &value)
Set a value from string by specifying the path
const Outlier & outlier() const
Get Outlier
Definition: Settings.h:1326
bool operator>(const Brightness &other) const
Comparison operator
Definition: Settings.h:430
bool operator>(const BlueBalance &other) const
Comparison operator
Definition: Settings.h:137
friend std::istream & operator>>(std::istream &stream, Iris &value)
Operator to set the value from a stream
Definition: Settings.h:369
Settings for a Zivid camera
Definition: Settings.h:50
friend std::ostream & operator<<(std::ostream &stream, const Threshold &value)
Operator to serialize the value to a stream
Definition: Settings.h:866
bool operator>(const Threshold &other) const
Comparison operator
Definition: Settings.h:861
const ValueType & value() const
Get the value
Definition: Settings.h:588
Iris (aperture) setting for the camera
Definition: Settings.h:311
static const Enabled yes
On/enabled.
Definition: Settings.h:1162
Brightness in the light output from the projector
Definition: Settings.h:380
void traverseValues(const F &f)
Traverse all members using the given function with the value of the member as parameter
Definition: Settings.h:1419
std::string toString() const
Get the value as string
Definition: Settings.h:602
bool operator<(const ExposureTime &other) const
Comparison operator
Definition: Settings.h:284
std::string toString() const
Get the value as string
Definition: Settings.h:119
void traverseValues(const F &f) const
Traverse the entire tree using the given function with the value of the member as parameter...
Definition: Settings.h:674
void traverseValues(const F &f) const
Traverse the entire tree using the given function with the value of the member as parameter...
Definition: Settings.h:934
constexpr BlueBalance(ValueType value) noexcept(std::is_nothrow_move_constructible< ValueType >::value)
Constructor
Definition: Settings.h:102
bool operator!=(const BlueBalance &other) const
Comparison operator
Definition: Settings.h:127
void set(const std::string &fullPath, const std::string &value)
Set a value from string by specifying the path
friend std::istream & operator>>(std::istream &stream, Saturated &value)
Operator to set the value from a stream
Definition: Settings.h:1115
bool operator<(const Brightness &other) const
Comparison operator
Definition: Settings.h:425
Range< ValueType > range() const
The range of valid values
Definition: Settings.h:406
std::string toString() const
Get the value as string
Definition: Settings.h:1191
const ValueType & value() const
Get the value
Definition: Settings.h:334
static const Enabled yes
On/enabled.
Definition: Settings.h:1006
static const Enabled no
Off/disabled.
Definition: Settings.h:1007
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:782
void setFromString(const std::string &value)
Set the value from string
Definition: Settings.h:838
const ValueType & value() const
Get the value
Definition: Settings.h:478
void traverseValues(const F &f)
Traverse all members using the given function with the value of the member as parameter
Definition: Settings.h:680
std::string toString() const
Get the value as string
bool operator!=(const RedBalance &other) const
Comparison operator
Definition: Settings.h:202
friend std::istream & operator>>(std::istream &stream, RedBalance &value)
Operator to set the value from a stream
Definition: Settings.h:223
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:666
bool operator<(const Threshold &other) const
Comparison operator
Definition: Settings.h:615
void setFromString(const std::string &value)
Set the value from string
Definition: Settings.h:1030
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:1083