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