112#    pragma warning(push) 
  113#    pragma warning(disable : 4251)  
  127        static constexpr const char *path{ 
"" };
 
  130        static constexpr const char *name{ 
"Settings2D" };
 
  133        static constexpr const char *description{
 
  134            R
"description(Settings used when capturing 2D images with a Zivid camera)description" 
  137        static constexpr size_t version{ 3 };
 
  147        static constexpr std::array<uint8_t, 3> binaryId{ 
's', 
't', 
'2' };
 
  159            static constexpr const char *path{ 
"Acquisition" };
 
  162            static constexpr const char *name{ 
"Acquisition" };
 
  165            static constexpr const char *description{ R
"description(Settings for a single acquisition)description" }; 
  177                static constexpr const char *path{ 
"Acquisition/Aperture" };
 
  180                static constexpr const char *name{ 
"Aperture" };
 
  183                static constexpr const char *description{
 
  184                    R
"description(Aperture setting for the camera. Specified as an f-number (the ratio of lens focal length to 
  185the effective aperture diameter). 
  195                    return { 1.4, 32.0 };
 
  203                    : m_opt{ verifyValue(value) }
 
  224                    return m_opt == other.m_opt;
 
  230                    return m_opt != other.m_opt;
 
  236                    return m_opt < other.m_opt;
 
  242                    return m_opt > other.m_opt;
 
  252                void setFromString(
const std::string &value);
 
  254                constexpr ValueType 
static verifyValue(
const ValueType &value)
 
  258                               : 
throw std::out_of_range{ 
"Aperture{ " + std::to_string(value) + 
" } is not in range [" 
  263                Zivid::DataModel::Detail::Optional<double> m_opt;
 
  265                friend struct DataModel::Detail::Befriend<
Aperture>;
 
  288                static constexpr const char *path{ 
"Acquisition/Brightness" };
 
  291                static constexpr const char *name{ 
"Brightness" };
 
  294                static constexpr const char *description{
 
  295                    R
"description(Brightness controls the light output from the projector. 
  297Brightness above 1.0 may be needed when the distance between the camera and the scene is large, 
  298or in case of high levels of ambient lighting. Brightness above 1.0 is supported on Zivid One 
  301When brightness is above 1.0 the duty cycle of the camera (the percentage of time the camera 
  302can capture) will be reduced. For Zivid One Plus the duty cycle in boost mode is 50%. For Zivid 
  303Two the duty cycle is reduced linearly from 100% at brightness 1.0, to 50% at brightness 1.8. 
  304The duty cycle is calculated over a 10 second period. This limitation is enforced automatically 
  305by the camera. Calling capture when the duty cycle limit has been reached will cause the camera 
  306to first wait (sleep) for a duration of time to cool down, before capture will start. 
  324                    : m_opt{ verifyValue(value) }
 
  345                    return m_opt == other.m_opt;
 
  351                    return m_opt != other.m_opt;
 
  357                    return m_opt < other.m_opt;
 
  363                    return m_opt > other.m_opt;
 
  373                void setFromString(
const std::string &value);
 
  375                constexpr ValueType 
static verifyValue(
const ValueType &value)
 
  379                               : 
throw std::out_of_range{ 
"Brightness{ " + std::to_string(value)
 
  380                                                          + 
" } is not in range [" + std::to_string(
validRange().min())
 
  381                                                          + 
", " + std::to_string(
validRange().max()) + 
"]" };
 
  384                Zivid::DataModel::Detail::Optional<double> m_opt;
 
  386                friend struct DataModel::Detail::Befriend<
Brightness>;
 
  397                static constexpr const char *path{ 
"Acquisition/ExposureTime" };
 
  400                static constexpr const char *name{ 
"ExposureTime" };
 
  403                static constexpr const char *description{ R
"description(Exposure time for the image)description" }; 
  411                    return { std::chrono::microseconds{ 1677 }, std::chrono::microseconds{ 100000 } };
 
  419                    : m_opt{ verifyValue(value) }
 
  426                std::chrono::microseconds 
value() 
const;
 
  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)
 
  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>;
 
  493                static constexpr const char *path{ 
"Acquisition/Gain" };
 
  496                static constexpr const char *name{ 
"Gain" };
 
  499                static constexpr const char *description{ R
"description(Analog gain in the camera)description" }; 
  514                explicit constexpr Gain(
double value)
 
  515                    : m_opt{ verifyValue(value) }
 
  536                    return m_opt == other.m_opt;
 
  542                    return m_opt != other.m_opt;
 
  548                    return m_opt < other.m_opt;
 
  554                    return m_opt > other.m_opt;
 
  564                void setFromString(
const std::string &value);
 
  566                constexpr ValueType 
static verifyValue(
const ValueType &value)
 
  570                               : 
throw std::out_of_range{ 
"Gain{ " + std::to_string(value) + 
" } is not in range [" 
  575                Zivid::DataModel::Detail::Optional<double> m_opt;
 
  577                friend struct DataModel::Detail::Befriend<
Gain>;
 
  606                typename std::enable_if<
sizeof...(Args) >= 1, 
int>::type = 0,
 
  607                typename std::enable_if<
 
  608                    Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants, 
typename std::decay<Args>::type...>::
 
  612            template<typename... Args>
 
  616                using namespace Zivid::Detail::TypeTraits;
 
  619                    AllArgsDecayedAreUnique<Args...>::value,
 
  620                    "Found duplicate types among the arguments passed to Acquisition(...). " 
  621                    "Types should be listed at most once.");
 
  623                set(std::forward<Args>(args)...);
 
  640            template<
typename... Args, 
typename std::enable_if<
sizeof...(Args) >= 2, 
int>::type = 0>
 
  642            template<typename... Args>
 
  646                using namespace Zivid::Detail::TypeTraits;
 
  648                using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
 
  650                    AllArgsAreDescendantNodes::value, 
"All arguments passed to set(...) must be descendant nodes.");
 
  653                    AllArgsDecayedAreUnique<Args...>::value,
 
  654                    "Found duplicate types among the arguments passed to set(...). " 
  655                    "Types should be listed at most once.");
 
  657                Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
 
  675            template<
typename... Args, 
typename std::enable_if<
sizeof...(Args) >= 1, 
int>::type = 0>
 
  677            template<typename... Args>
 
  681                using namespace Zivid::Detail::TypeTraits;
 
  683                using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
 
  685                    AllArgsAreDescendantNodes::value,
 
  686                    "All arguments passed to copyWith(...) must be descendant nodes.");
 
  689                    AllArgsDecayedAreUnique<Args...>::value,
 
  690                    "Found duplicate types among the arguments passed to copyWith(...). " 
  691                    "Types should be listed at most once.");
 
  694                copy.
set(std::forward<Args>(args)...);
 
  732                m_brightness = value;
 
  739                return m_exposureTime;
 
  745                return m_exposureTime;
 
  751                m_exposureTime = value;
 
  776                typename std::enable_if<std::is_same<T, Settings2D::Acquisition::Aperture>::value, 
int>::type = 0>
 
  784                typename std::enable_if<std::is_same<T, Settings2D::Acquisition::Brightness>::value, 
int>::type = 0>
 
  792                typename std::enable_if<std::is_same<T, Settings2D::Acquisition::ExposureTime>::value, 
int>::type = 0>
 
  795                return m_exposureTime;
 
  800                typename std::enable_if<std::is_same<T, Settings2D::Acquisition::Gain>::value, 
int>::type = 0>
 
  806            template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
 
  812            template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
 
  818            template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
 
  821                return m_exposureTime;
 
  824            template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
 
  866            void setFromString(
const std::string &value);
 
  868            void setFromString(
const std::string &fullPath, 
const std::string &value);
 
  870            std::string getString(
const std::string &fullPath) 
const;
 
  873            Brightness m_brightness;
 
  874            ExposureTime m_exposureTime;
 
  877            friend struct DataModel::Detail::Befriend<
Acquisition>;
 
  888            static constexpr const char *path{ 
"Acquisitions" };
 
  891            static constexpr const char *name{ 
"Acquisitions" };
 
  894            static constexpr const char *description{
 
  895                R
"description(List of acquisitions. Note that the Zivid SDK only supports a single acquisition per capture in 2D mode.)description" 
  904                return { 0, std::numeric_limits<ValueType::size_type>::max() };
 
  912                : m_value{ std::move(value) }
 
  916            explicit Acquisitions(std::initializer_list<Settings2D::Acquisition> value)
 
  921            const std::vector<Settings2D::Acquisition> &
value() 
const;
 
  927            std::size_t 
size() const noexcept;
 
  930            bool isEmpty() const noexcept;
 
  937            template<typename... Args>
 
  938            void emplaceBack(Args &&...args)
 
  940                m_value.emplace_back(std::forward<Args>(args)...);
 
  975                for(
auto &child : m_value)
 
  985                for(
const auto &child : m_value)
 
  994                return m_value == other.m_value;
 
 1000                return m_value != other.m_value;
 
 1010            void setFromString(
const std::string &value);
 
 1012            std::vector<Settings2D::Acquisition> m_value{};
 
 1014            friend struct DataModel::Detail::Befriend<
Acquisitions>;
 
 1025            static constexpr const char *path{ 
"Processing" };
 
 1028            static constexpr const char *name{ 
"Processing" };
 
 1031            static constexpr const char *description{ R
"description(Processing related settings)description" }; 
 1041                static constexpr const char *path{ 
"Processing/Color" };
 
 1044                static constexpr const char *name{ 
"Color" };
 
 1047                static constexpr const char *description{ R
"description(Color settings)description" }; 
 1057                    static constexpr const char *path{ 
"Processing/Color/Balance" };
 
 1060                    static constexpr const char *name{ 
"Balance" };
 
 1063                    static constexpr const char *description{ R
"description(Color balance settings)description" }; 
 1073                        static constexpr const char *path{ 
"Processing/Color/Balance/Blue" };
 
 1076                        static constexpr const char *name{ 
"Blue" };
 
 1079                        static constexpr const char *description{
 
 1080                            R
"description(Digital gain applied to blue channel)description" 
 1089                            return { 1.0, 8.0 };
 
 1096                        explicit constexpr Blue(
double value)
 
 1097                            : m_opt{ verifyValue(value) }
 
 1118                            return m_opt == other.m_opt;
 
 1124                            return m_opt != other.m_opt;
 
 1130                            return m_opt < other.m_opt;
 
 1136                            return m_opt > other.m_opt;
 
 1146                        void setFromString(
const std::string &value);
 
 1148                        constexpr ValueType 
static verifyValue(
const ValueType &value)
 
 1152                                       : 
throw std::out_of_range{ 
"Blue{ " + std::to_string(value)
 
 1153                                                                  + 
" } is not in range [" 
 1155                                                                  + std::to_string(
validRange().max()) + 
"]" };
 
 1158                        Zivid::DataModel::Detail::Optional<double> m_opt;
 
 1160                        friend struct DataModel::Detail::Befriend<
Blue>;
 
 1171                        static constexpr const char *path{ 
"Processing/Color/Balance/Green" };
 
 1174                        static constexpr const char *name{ 
"Green" };
 
 1177                        static constexpr const char *description{
 
 1178                            R
"description(Digital gain applied to green channel)description" 
 1187                            return { 1.0, 8.0 };
 
 1195                            : m_opt{ verifyValue(value) }
 
 1216                            return m_opt == other.m_opt;
 
 1222                            return m_opt != other.m_opt;
 
 1228                            return m_opt < other.m_opt;
 
 1234                            return m_opt > other.m_opt;
 
 1244                        void setFromString(
const std::string &value);
 
 1246                        constexpr ValueType 
static verifyValue(
const ValueType &value)
 
 1250                                       : 
throw std::out_of_range{ 
"Green{ " + std::to_string(value)
 
 1251                                                                  + 
" } is not in range [" 
 1253                                                                  + std::to_string(
validRange().max()) + 
"]" };
 
 1256                        Zivid::DataModel::Detail::Optional<double> m_opt;
 
 1258                        friend struct DataModel::Detail::Befriend<
Green>;
 
 1269                        static constexpr const char *path{ 
"Processing/Color/Balance/Red" };
 
 1272                        static constexpr const char *name{ 
"Red" };
 
 1275                        static constexpr const char *description{
 
 1276                            R
"description(Digital gain applied to red channel)description" 
 1285                            return { 1.0, 8.0 };
 
 1292                        explicit constexpr Red(
double value)
 
 1293                            : m_opt{ verifyValue(value) }
 
 1314                            return m_opt == other.m_opt;
 
 1320                            return m_opt != other.m_opt;
 
 1326                            return m_opt < other.m_opt;
 
 1332                            return m_opt > other.m_opt;
 
 1342                        void setFromString(
const std::string &value);
 
 1344                        constexpr ValueType 
static verifyValue(
const ValueType &value)
 
 1348                                       : 
throw std::out_of_range{ 
"Red{ " + std::to_string(value)
 
 1349                                                                  + 
" } is not in range [" 
 1351                                                                  + std::to_string(
validRange().max()) + 
"]" };
 
 1354                        Zivid::DataModel::Detail::Optional<double> m_opt;
 
 1356                        friend struct DataModel::Detail::Befriend<
Red>;
 
 1383                        typename std::enable_if<
sizeof...(Args) >= 1, 
int>::type = 0,
 
 1384                        typename std::enable_if<
 
 1385                            Zivid::Detail::TypeTraits::
 
 1386                                AllArgsAreInTuple<
Descendants, 
typename std::decay<Args>::type...>::value,
 
 1389                    template<typename... Args>
 
 1393                        using namespace Zivid::Detail::TypeTraits;
 
 1396                            AllArgsDecayedAreUnique<Args...>::value,
 
 1397                            "Found duplicate types among the arguments passed to Balance(...). " 
 1398                            "Types should be listed at most once.");
 
 1400                        set(std::forward<Args>(args)...);
 
 1416                    template<
typename... Args, 
typename std::enable_if<
sizeof...(Args) >= 2, 
int>::type = 0>
 
 1418                    template<typename... Args>
 
 1422                        using namespace Zivid::Detail::TypeTraits;
 
 1424                        using AllArgsAreDescendantNodes =
 
 1425                            AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
 
 1427                            AllArgsAreDescendantNodes::value,
 
 1428                            "All arguments passed to set(...) must be descendant nodes.");
 
 1431                            AllArgsDecayedAreUnique<Args...>::value,
 
 1432                            "Found duplicate types among the arguments passed to set(...). " 
 1433                            "Types should be listed at most once.");
 
 1435                        Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
 
 1452                    template<
typename... Args, 
typename std::enable_if<
sizeof...(Args) >= 1, 
int>::type = 0>
 
 1454                    template<typename... Args>
 
 1458                        using namespace Zivid::Detail::TypeTraits;
 
 1460                        using AllArgsAreDescendantNodes =
 
 1461                            AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
 
 1463                            AllArgsAreDescendantNodes::value,
 
 1464                            "All arguments passed to copyWith(...) must be descendant nodes.");
 
 1467                            AllArgsDecayedAreUnique<Args...>::value,
 
 1468                            "Found duplicate types among the arguments passed to copyWith(...). " 
 1469                            "Types should be listed at most once.");
 
 1472                        copy.
set(std::forward<Args>(args)...);
 
 1535                        typename std::enable_if<
 
 1536                            std::is_same<T, Settings2D::Processing::Color::Balance::Blue>::value,
 
 1545                        typename std::enable_if<
 
 1546                            std::is_same<T, Settings2D::Processing::Color::Balance::Green>::value,
 
 1555                        typename std::enable_if<
 
 1556                            std::is_same<T, Settings2D::Processing::Color::Balance::Red>::value,
 
 1563                    template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
 
 1569                    template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
 
 1575                    template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
 
 1582                    template<
typename F>
 
 1591                    template<
typename F>
 
 1615                    void setFromString(
const std::string &value);
 
 1617                    void setFromString(
const std::string &fullPath, 
const std::string &value);
 
 1619                    std::string getString(
const std::string &fullPath) 
const;
 
 1625                    friend struct DataModel::Detail::Befriend<
Balance>;
 
 1638                    static constexpr const char *path{ 
"Processing/Color/Gamma" };
 
 1641                    static constexpr const char *name{ 
"Gamma" };
 
 1644                    static constexpr const char *description{
 
 1645                        R
"description(Gamma applied to the color values. Gamma less than 1 makes the colors brighter, while gamma 
 1646greater than 1 makes the colors darker. 
 1656                        return { 0.25, 1.5 };
 
 1664                        : m_opt{ verifyValue(value) }
 
 1685                        return m_opt == other.m_opt;
 
 1691                        return m_opt != other.m_opt;
 
 1697                        return m_opt < other.m_opt;
 
 1703                        return m_opt > other.m_opt;
 
 1713                    void setFromString(
const std::string &value);
 
 1715                    constexpr ValueType 
static verifyValue(
const ValueType &value)
 
 1719                                   : 
throw std::out_of_range{ 
"Gamma{ " + std::to_string(value) + 
" } is not in range [" 
 1721                                                              + std::to_string(
validRange().max()) + 
"]" };
 
 1724                    Zivid::DataModel::Detail::Optional<double> m_opt;
 
 1726                    friend struct DataModel::Detail::Befriend<
Gamma>;
 
 1757                    typename std::enable_if<
sizeof...(Args) >= 1, 
int>::type = 0,
 
 1758                    typename std::enable_if<
 
 1759                        Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants, 
typename std::decay<Args>::type...>::
 
 1763                template<typename... Args>
 
 1767                    using namespace Zivid::Detail::TypeTraits;
 
 1770                        AllArgsDecayedAreUnique<Args...>::value,
 
 1771                        "Found duplicate types among the arguments passed to Color(...). " 
 1772                        "Types should be listed at most once.");
 
 1774                    set(std::forward<Args>(args)...);
 
 1792                template<
typename... Args, 
typename std::enable_if<
sizeof...(Args) >= 2, 
int>::type = 0>
 
 1794                template<typename... Args>
 
 1798                    using namespace Zivid::Detail::TypeTraits;
 
 1800                    using AllArgsAreDescendantNodes =
 
 1801                        AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
 
 1803                        AllArgsAreDescendantNodes::value, 
"All arguments passed to set(...) must be descendant nodes.");
 
 1806                        AllArgsDecayedAreUnique<Args...>::value,
 
 1807                        "Found duplicate types among the arguments passed to set(...). " 
 1808                        "Types should be listed at most once.");
 
 1810                    Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
 
 1829                template<
typename... Args, 
typename std::enable_if<
sizeof...(Args) >= 1, 
int>::type = 0>
 
 1831                template<typename... Args>
 
 1835                    using namespace Zivid::Detail::TypeTraits;
 
 1837                    using AllArgsAreDescendantNodes =
 
 1838                        AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
 
 1840                        AllArgsAreDescendantNodes::value,
 
 1841                        "All arguments passed to copyWith(...) must be descendant nodes.");
 
 1844                        AllArgsDecayedAreUnique<Args...>::value,
 
 1845                        "Found duplicate types among the arguments passed to copyWith(...). " 
 1846                        "Types should be listed at most once.");
 
 1849                    copy.
set(std::forward<Args>(args)...);
 
 1875                    m_balance.
set(value);
 
 1882                    m_balance.
set(value);
 
 1889                    m_balance.
set(value);
 
 1914                    typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Balance>::value, 
int>::type =
 
 1923                    typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Balance::Blue>::value, 
int>::
 
 1933                        enable_if<std::is_same<T, Settings2D::Processing::Color::Balance::Green>::value, 
int>::type = 0>
 
 1941                    typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Balance::Red>::value, 
int>::
 
 1950                    typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Gamma>::value, 
int>::type =
 
 1957                template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
 
 1963                template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
 
 1970                template<
typename F>
 
 1978                template<
typename F>
 
 2001                void setFromString(
const std::string &value);
 
 2003                void setFromString(
const std::string &fullPath, 
const std::string &value);
 
 2005                std::string getString(
const std::string &fullPath) 
const;
 
 2010                friend struct DataModel::Detail::Befriend<
Color>;
 
 2043                typename std::enable_if<
sizeof...(Args) >= 1, 
int>::type = 0,
 
 2044                typename std::enable_if<
 
 2045                    Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants, 
typename std::decay<Args>::type...>::
 
 2049            template<typename... Args>
 
 2053                using namespace Zivid::Detail::TypeTraits;
 
 2056                    AllArgsDecayedAreUnique<Args...>::value,
 
 2057                    "Found duplicate types among the arguments passed to Processing(...). " 
 2058                    "Types should be listed at most once.");
 
 2060                set(std::forward<Args>(args)...);
 
 2079            template<
typename... Args, 
typename std::enable_if<
sizeof...(Args) >= 2, 
int>::type = 0>
 
 2081            template<typename... Args>
 
 2085                using namespace Zivid::Detail::TypeTraits;
 
 2087                using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
 
 2089                    AllArgsAreDescendantNodes::value, 
"All arguments passed to set(...) must be descendant nodes.");
 
 2092                    AllArgsDecayedAreUnique<Args...>::value,
 
 2093                    "Found duplicate types among the arguments passed to set(...). " 
 2094                    "Types should be listed at most once.");
 
 2096                Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
 
 2116            template<
typename... Args, 
typename std::enable_if<
sizeof...(Args) >= 1, 
int>::type = 0>
 
 2118            template<typename... Args>
 
 2122                using namespace Zivid::Detail::TypeTraits;
 
 2124                using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
 
 2126                    AllArgsAreDescendantNodes::value,
 
 2127                    "All arguments passed to copyWith(...) must be descendant nodes.");
 
 2130                    AllArgsDecayedAreUnique<Args...>::value,
 
 2131                    "Found duplicate types among the arguments passed to copyWith(...). " 
 2132                    "Types should be listed at most once.");
 
 2135                copy.
set(std::forward<Args>(args)...);
 
 2195                typename std::enable_if<std::is_same<T, Settings2D::Processing::Color>::value, 
int>::type = 0>
 
 2203                typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Balance>::value, 
int>::type = 0>
 
 2211                typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Balance::Blue>::value, 
int>::
 
 2220                typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Balance::Green>::value, 
int>::
 
 2229                typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Balance::Red>::value, 
int>::
 
 2238                typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Gamma>::value, 
int>::type = 0>
 
 2244            template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
 
 2251            template<
typename F>
 
 2258            template<
typename F>
 
 2280            void setFromString(
const std::string &value);
 
 2282            void setFromString(
const std::string &fullPath, 
const std::string &value);
 
 2284            std::string getString(
const std::string &fullPath) 
const;
 
 2288            friend struct DataModel::Detail::Befriend<
Processing>;
 
 2328            typename std::enable_if<
sizeof...(Args) >= 1, 
int>::type = 0,
 
 2329            typename std::enable_if<
 
 2330                Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants, 
typename std::decay<Args>::type...>::value,
 
 2333        template<typename... Args>
 
 2337            using namespace Zivid::Detail::TypeTraits;
 
 2340                AllArgsDecayedAreUnique<Args...>::value,
 
 2341                "Found duplicate types among the arguments passed to Settings2D(...). " 
 2342                "Types should be listed at most once.");
 
 2344            set(std::forward<Args>(args)...);
 
 2365        template<
typename... Args, 
typename std::enable_if<
sizeof...(Args) >= 2, 
int>::type = 0>
 
 2367        template<typename... Args>
 
 2371            using namespace Zivid::Detail::TypeTraits;
 
 2373            using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
 
 2375                AllArgsAreDescendantNodes::value, 
"All arguments passed to set(...) must be descendant nodes.");
 
 2378                AllArgsDecayedAreUnique<Args...>::value,
 
 2379                "Found duplicate types among the arguments passed to set(...). " 
 2380                "Types should be listed at most once.");
 
 2382            Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
 
 2404        template<
typename... Args, 
typename std::enable_if<
sizeof...(Args) >= 1, 
int>::type = 0>
 
 2406        template<typename... Args>
 
 2410            using namespace Zivid::Detail::TypeTraits;
 
 2412            using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
 
 2414                AllArgsAreDescendantNodes::value, 
"All arguments passed to copyWith(...) must be descendant nodes.");
 
 2417                AllArgsDecayedAreUnique<Args...>::value,
 
 2418                "Found duplicate types among the arguments passed to copyWith(...). " 
 2419                "Types should be listed at most once.");
 
 2422            copy.
set(std::forward<Args>(args)...);
 
 2429            return m_acquisitions;
 
 2435            return m_acquisitions;
 
 2441            m_acquisitions = value;
 
 2448            return m_processing;
 
 2454            return m_processing;
 
 2460            m_processing = value;
 
 2467            m_processing.
set(value);
 
 2474            m_processing.
set(value);
 
 2481            m_processing.
set(value);
 
 2488            m_processing.
set(value);
 
 2495            m_processing.
set(value);
 
 2502            m_processing.
set(value);
 
 2506        template<typename T, typename std::enable_if<std::is_same<T, Settings2D::Acquisitions>::value, 
int>::type = 0>
 
 2509            return m_acquisitions;
 
 2512        template<typename T, typename std::enable_if<std::is_same<T, Settings2D::Processing>::value, 
int>::type = 0>
 
 2515            return m_processing;
 
 2520            typename std::enable_if<std::is_same<T, Settings2D::Processing::Color>::value, 
int>::type = 0>
 
 2528            typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Balance>::value, 
int>::type = 0>
 
 2536            typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Balance::Blue>::value, 
int>::type =
 
 2545            typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Balance::Green>::value, 
int>::type =
 
 2554            typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Balance::Red>::value, 
int>::type = 0>
 
 2562            typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Gamma>::value, 
int>::type = 0>
 
 2568        template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
 
 2571            return m_acquisitions;
 
 2574        template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
 
 2577            return m_processing;
 
 2581        template<
typename F>
 
 2589        template<
typename F>
 
 2612        void save(
const std::string &fileName) 
const;
 
 2615        void load(
const std::string &fileName);
 
 2618        void setFromString(
const std::string &value);
 
 2620        void setFromString(
const std::string &fullPath, 
const std::string &value);
 
 2622        std::string getString(
const std::string &fullPath) 
const;
 
 2627        friend struct DataModel::Detail::Befriend<
Settings2D>;
 
 2632    struct Settings2D::Version<3>
 
 2641#    pragma warning(pop) 
 2645#    if !(defined(_MSC_VER) && (_MSC_VER <= 1900)) 
 2650    struct tuple_size<
Zivid::Settings2D::Processing> : integral_constant<size_t, 1>
 
 2654    struct tuple_element<i, 
Zivid::Settings2D::Processing>
 
 2656        static_assert(i < tuple_size<Zivid::Settings2D::Processing>::value, 
"Index must be less than 1");
 
 2659            = 
decltype(declval<Zivid::Settings2D::Processing>().get<i>());
 
 2663    struct tuple_size<
Zivid::Settings2D::Processing::Color> : integral_constant<size_t, 2>
 
 2667    struct tuple_element<i, 
Zivid::Settings2D::Processing::Color>
 
 2669        static_assert(i < tuple_size<Zivid::Settings2D::Processing::Color>::value, 
"Index must be less than 2");
 
 2672            = 
decltype(declval<Zivid::Settings2D::Processing::Color>().get<i>());
 
 2676    struct tuple_size<
Zivid::Settings2D::Processing::Color::Balance> : integral_constant<size_t, 3>
 
 2680    struct tuple_element<i, 
Zivid::Settings2D::Processing::Color::Balance>
 
 2683            i < tuple_size<Zivid::Settings2D::Processing::Color::Balance>::value,
 
 2684            "Index must be less than 3");
 
 2687            = 
decltype(declval<Zivid::Settings2D::Processing::Color::Balance>().get<i>());
 
 2691    struct tuple_size<
Zivid::Settings2D> : integral_constant<size_t, 2>
 
 2695    struct tuple_element<i, 
Zivid::Settings2D>
 
 2697        static_assert(i < tuple_size<Zivid::Settings2D>::value, 
"Index must be less than 2");
 
 2700            = 
decltype(declval<Zivid::Settings2D>().get<i>());
 
 2709#if defined(__has_include) && !defined(NO_DOC) 
 2710#    if __has_include("Zivid/Settings2DInternal.h") && __has_include("Zivid/DataModelSerializationMetaData.h")
 
 2711#        include "Zivid/Settings2DInternal.h" 
#define ZIVID_CORE_EXPORT
Definition: CoreExport.h:101
 
Class describing a range of values for a given type T
Definition: Range.h:102
 
Aperture setting for the camera. Specified as an f-number (the ratio of lens focal length to the effe...
Definition: Settings2D.h:171
 
void reset()
Reset the node to unset state
 
bool operator!=(const Aperture &other) const
Comparison operator
Definition: Settings2D.h:228
 
friend std::ostream & operator<<(std::ostream &stream, const Aperture &value)
Operator to serialize the value to a stream
Definition: Settings2D.h:246
 
bool operator<(const Aperture &other) const
Comparison operator
Definition: Settings2D.h:234
 
constexpr Aperture(double value)
Constructor
Definition: Settings2D.h:202
 
static constexpr Range< double > validRange()
The range of valid values for Aperture
Definition: Settings2D.h:193
 
std::string toString() const
Get the value as string
 
double value() const
Get the value
 
bool operator>(const Aperture &other) const
Comparison operator
Definition: Settings2D.h:240
 
Aperture()=default
Default constructor
 
double ValueType
The type of the underlying value
Definition: Settings2D.h:190
 
bool operator==(const Aperture &other) const
Comparison operator
Definition: Settings2D.h:222
 
bool hasValue() const
Check if the value is set
 
Brightness controls the light output from the projector.
Definition: Settings2D.h:282
 
bool operator==(const Brightness &other) const
Comparison operator
Definition: Settings2D.h:343
 
bool operator>(const Brightness &other) const
Comparison operator
Definition: Settings2D.h:361
 
bool operator<(const Brightness &other) const
Comparison operator
Definition: Settings2D.h:355
 
static constexpr Range< double > validRange()
The range of valid values for Brightness
Definition: Settings2D.h:314
 
constexpr Brightness(double value)
Constructor
Definition: Settings2D.h:323
 
std::string toString() const
Get the value as string
 
bool operator!=(const Brightness &other) const
Comparison operator
Definition: Settings2D.h:349
 
friend std::ostream & operator<<(std::ostream &stream, const Brightness &value)
Operator to serialize the value to a stream
Definition: Settings2D.h:367
 
double value() const
Get the value
 
Brightness()=default
Default constructor
 
bool hasValue() const
Check if the value is set
 
void reset()
Reset the node to unset state
 
double ValueType
The type of the underlying value
Definition: Settings2D.h:311
 
Exposure time for the image
Definition: Settings2D.h:391
 
bool operator>(const ExposureTime &other) const
Comparison operator
Definition: Settings2D.h:456
 
std::chrono::microseconds ValueType
The type of the underlying value
Definition: Settings2D.h:406
 
void reset()
Reset the node to unset state
 
constexpr ExposureTime(std::chrono::microseconds value)
Constructor
Definition: Settings2D.h:418
 
std::chrono::microseconds value() const
Get the value
 
bool operator<(const ExposureTime &other) const
Comparison operator
Definition: Settings2D.h:450
 
static constexpr Range< std::chrono::microseconds > validRange()
The range of valid values for ExposureTime
Definition: Settings2D.h:409
 
bool operator!=(const ExposureTime &other) const
Comparison operator
Definition: Settings2D.h:444
 
std::string toString() const
Get the value as string
 
ExposureTime()=default
Default constructor
 
bool operator==(const ExposureTime &other) const
Comparison operator
Definition: Settings2D.h:438
 
friend std::ostream & operator<<(std::ostream &stream, const ExposureTime &value)
Operator to serialize the value to a stream
Definition: Settings2D.h:462
 
bool hasValue() const
Check if the value is set
 
Analog gain in the camera
Definition: Settings2D.h:487
 
bool operator>(const Gain &other) const
Comparison operator
Definition: Settings2D.h:552
 
bool operator!=(const Gain &other) const
Comparison operator
Definition: Settings2D.h:540
 
bool operator==(const Gain &other) const
Comparison operator
Definition: Settings2D.h:534
 
friend std::ostream & operator<<(std::ostream &stream, const Gain &value)
Operator to serialize the value to a stream
Definition: Settings2D.h:558
 
double ValueType
The type of the underlying value
Definition: Settings2D.h:502
 
Gain()=default
Default constructor
 
std::string toString() const
Get the value as string
 
void reset()
Reset the node to unset state
 
constexpr Gain(double value)
Constructor
Definition: Settings2D.h:514
 
double value() const
Get the value
 
bool hasValue() const
Check if the value is set
 
static constexpr Range< double > validRange()
The range of valid values for Gain
Definition: Settings2D.h:505
 
bool operator<(const Gain &other) const
Comparison operator
Definition: Settings2D.h:546
 
Settings for a single acquisition
Definition: Settings2D.h:153
 
const Settings2D::Acquisition::Gain & get() const
Definition: Settings2D.h:801
 
const ExposureTime & exposureTime() const
Get ExposureTime
Definition: Settings2D.h:737
 
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings2D.h:832
 
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings2D.h:842
 
const Settings2D::Acquisition::Aperture & get() const
Definition: Settings2D.h:777
 
ExposureTime & exposureTime()
Get ExposureTime
Definition: Settings2D.h:743
 
friend std::ostream & operator<<(std::ostream &stream, const Acquisition &value)
Operator to send the value as string to a stream
Definition: Settings2D.h:860
 
bool operator!=(const Acquisition &other) const
Inequality operator
 
Acquisition & set(const Gain &value)
Set Gain
Definition: Settings2D.h:768
 
std::string toString() const
Get the value as string
 
Acquisition & set(const Aperture &value)
Set Aperture
Definition: Settings2D.h:711
 
std::tuple< Settings2D::Acquisition::Aperture, Settings2D::Acquisition::Brightness, Settings2D::Acquisition::ExposureTime, Settings2D::Acquisition::Gain > Descendants
Definition: Settings2D.h:584
 
Gain & gain()
Get Gain
Definition: Settings2D.h:762
 
bool operator==(const Acquisition &other) const
Equality operator
 
Acquisition copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings2D.h:679
 
void set(Args &&...args)
Set multiple arguments
Definition: Settings2D.h:644
 
const Settings2D::Acquisition::ExposureTime & get() const
Definition: Settings2D.h:793
 
Acquisition()
Default constructor
 
Aperture & aperture()
Get Aperture
Definition: Settings2D.h:705
 
Acquisition(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings2D.h:614
 
const Aperture & aperture() const
Get Aperture
Definition: Settings2D.h:699
 
Acquisition & set(const Brightness &value)
Set Brightness
Definition: Settings2D.h:730
 
const Brightness & brightness() const
Get Brightness
Definition: Settings2D.h:718
 
Brightness & brightness()
Get Brightness
Definition: Settings2D.h:724
 
const Gain & gain() const
Get Gain
Definition: Settings2D.h:756
 
const Settings2D::Acquisition::Brightness & get() const
Definition: Settings2D.h:785
 
Acquisition & set(const ExposureTime &value)
Set ExposureTime
Definition: Settings2D.h:749
 
List of acquisitions. Note that the Zivid SDK only supports a single acquisition per capture in 2D mo...
Definition: Settings2D.h:882
 
const Settings2D::Acquisition & at(std::size_t pos) const
Returns a const reference to the element at position pos in the list
 
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Acquisitions
Definition: Settings2D.h:902
 
Acquisitions(std::initializer_list< Settings2D::Acquisition > value)
Constructor
Definition: Settings2D.h:916
 
Settings2D::Acquisition & operator[](std::size_t pos)
Returns a reference to the element at position pos in the list
 
const Settings2D::Acquisition & operator[](std::size_t pos) const
Returns a const reference to the element at position pos in the list
 
Acquisitions(std::vector< Settings2D::Acquisition > value)
Constructor
Definition: Settings2D.h:911
 
void forEach(const F &f)
Run the given function on each element in the list
Definition: Settings2D.h:973
 
bool operator==(const Acquisitions &other) const
Comparison operator
Definition: Settings2D.h:992
 
Settings2D::Acquisition & at(std::size_t pos)
Returns a reference to the element at position pos in the list
 
void forEach(const F &f) const
Run the given function on each element in the list
Definition: Settings2D.h:983
 
std::vector< Settings2D::Acquisition > ValueType
The type of the underlying value
Definition: Settings2D.h:899
 
std::string toString() const
Get the value as string
 
friend std::ostream & operator<<(std::ostream &stream, const Acquisitions &value)
Operator to serialize the value to a stream
Definition: Settings2D.h:1004
 
std::size_t size() const noexcept
Get the size of the list
 
bool operator!=(const Acquisitions &other) const
Comparison operator
Definition: Settings2D.h:998
 
Acquisitions()=default
Default constructor
 
const std::vector< Settings2D::Acquisition > & value() const
Get the value
 
Digital gain applied to blue channel
Definition: Settings2D.h:1067
 
double value() const
Get the value
 
friend std::ostream & operator<<(std::ostream &stream, const Blue &value)
Operator to serialize the value to a stream
Definition: Settings2D.h:1140
 
bool operator==(const Blue &other) const
Comparison operator
Definition: Settings2D.h:1116
 
void reset()
Reset the node to unset state
 
double ValueType
The type of the underlying value
Definition: Settings2D.h:1084
 
bool operator>(const Blue &other) const
Comparison operator
Definition: Settings2D.h:1134
 
std::string toString() const
Get the value as string
 
constexpr Blue(double value)
Constructor
Definition: Settings2D.h:1096
 
bool operator!=(const Blue &other) const
Comparison operator
Definition: Settings2D.h:1122
 
bool hasValue() const
Check if the value is set
 
static constexpr Range< double > validRange()
The range of valid values for Blue
Definition: Settings2D.h:1087
 
bool operator<(const Blue &other) const
Comparison operator
Definition: Settings2D.h:1128
 
Blue()=default
Default constructor
 
Digital gain applied to green channel
Definition: Settings2D.h:1165
 
double ValueType
The type of the underlying value
Definition: Settings2D.h:1182
 
static constexpr Range< double > validRange()
The range of valid values for Green
Definition: Settings2D.h:1185
 
bool operator==(const Green &other) const
Comparison operator
Definition: Settings2D.h:1214
 
std::string toString() const
Get the value as string
 
constexpr Green(double value)
Constructor
Definition: Settings2D.h:1194
 
friend std::ostream & operator<<(std::ostream &stream, const Green &value)
Operator to serialize the value to a stream
Definition: Settings2D.h:1238
 
bool operator<(const Green &other) const
Comparison operator
Definition: Settings2D.h:1226
 
bool hasValue() const
Check if the value is set
 
Green()=default
Default constructor
 
bool operator!=(const Green &other) const
Comparison operator
Definition: Settings2D.h:1220
 
bool operator>(const Green &other) const
Comparison operator
Definition: Settings2D.h:1232
 
double value() const
Get the value
 
void reset()
Reset the node to unset state
 
Digital gain applied to red channel
Definition: Settings2D.h:1263
 
double ValueType
The type of the underlying value
Definition: Settings2D.h:1280
 
friend std::ostream & operator<<(std::ostream &stream, const Red &value)
Operator to serialize the value to a stream
Definition: Settings2D.h:1336
 
Red()=default
Default constructor
 
bool operator<(const Red &other) const
Comparison operator
Definition: Settings2D.h:1324
 
std::string toString() const
Get the value as string
 
static constexpr Range< double > validRange()
The range of valid values for Red
Definition: Settings2D.h:1283
 
bool hasValue() const
Check if the value is set
 
bool operator!=(const Red &other) const
Comparison operator
Definition: Settings2D.h:1318
 
double value() const
Get the value
 
constexpr Red(double value)
Constructor
Definition: Settings2D.h:1292
 
bool operator==(const Red &other) const
Comparison operator
Definition: Settings2D.h:1312
 
void reset()
Reset the node to unset state
 
bool operator>(const Red &other) const
Comparison operator
Definition: Settings2D.h:1330
 
Color balance settings
Definition: Settings2D.h:1051
 
const Settings2D::Processing::Color::Balance::Red & get() const
Definition: Settings2D.h:1558
 
Balance(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings2D.h:1391
 
Blue & blue()
Get Blue
Definition: Settings2D.h:1483
 
bool operator!=(const Balance &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: Settings2D.h:1592
 
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings2D.h:1583
 
const Blue & blue() const
Get Blue
Definition: Settings2D.h:1477
 
bool operator==(const Balance &other) const
Equality operator
 
Balance & set(const Blue &value)
Set Blue
Definition: Settings2D.h:1489
 
Red & red()
Get Red
Definition: Settings2D.h:1521
 
Green & green()
Get Green
Definition: Settings2D.h:1502
 
Balance & set(const Green &value)
Set Green
Definition: Settings2D.h:1508
 
Balance copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings2D.h:1456
 
const Green & green() const
Get Green
Definition: Settings2D.h:1496
 
Balance()
Default constructor
 
Balance & set(const Red &value)
Set Red
Definition: Settings2D.h:1527
 
const Settings2D::Processing::Color::Balance::Green & get() const
Definition: Settings2D.h:1548
 
const Red & red() const
Get Red
Definition: Settings2D.h:1515
 
std::string toString() const
Get the value as string
 
void set(Args &&...args)
Set multiple arguments
Definition: Settings2D.h:1420
 
friend std::ostream & operator<<(std::ostream &stream, const Balance &value)
Operator to send the value as string to a stream
Definition: Settings2D.h:1609
 
const Settings2D::Processing::Color::Balance::Blue & get() const
Definition: Settings2D.h:1538
 
std::tuple< Settings2D::Processing::Color::Balance::Blue, Settings2D::Processing::Color::Balance::Green, Settings2D::Processing::Color::Balance::Red > Descendants
Definition: Settings2D.h:1362
 
Gamma applied to the color values. Gamma less than 1 makes the colors brighter, while gamma greater t...
Definition: Settings2D.h:1632
 
double ValueType
The type of the underlying value
Definition: Settings2D.h:1651
 
static constexpr Range< double > validRange()
The range of valid values for Gamma
Definition: Settings2D.h:1654
 
bool operator>(const Gamma &other) const
Comparison operator
Definition: Settings2D.h:1701
 
bool operator==(const Gamma &other) const
Comparison operator
Definition: Settings2D.h:1683
 
friend std::ostream & operator<<(std::ostream &stream, const Gamma &value)
Operator to serialize the value to a stream
Definition: Settings2D.h:1707
 
bool operator!=(const Gamma &other) const
Comparison operator
Definition: Settings2D.h:1689
 
bool hasValue() const
Check if the value is set
 
std::string toString() const
Get the value as string
 
bool operator<(const Gamma &other) const
Comparison operator
Definition: Settings2D.h:1695
 
void reset()
Reset the node to unset state
 
constexpr Gamma(double value)
Constructor
Definition: Settings2D.h:1663
 
Gamma()=default
Default constructor
 
double value() const
Get the value
 
Color settings
Definition: Settings2D.h:1035
 
void set(Args &&...args)
Set multiple arguments
Definition: Settings2D.h:1796
 
Color & set(const Balance::Green &value)
Set Balance::Green
Definition: Settings2D.h:1880
 
bool operator!=(const Color &other) const
Inequality operator
 
bool operator==(const Color &other) const
Equality operator
 
std::string toString() const
Get the value as string
 
const Balance & balance() const
Get Balance
Definition: Settings2D.h:1854
 
Color & set(const Balance::Blue &value)
Set Balance::Blue
Definition: Settings2D.h:1873
 
Balance & balance()
Get Balance
Definition: Settings2D.h:1860
 
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings2D.h:1971
 
friend std::ostream & operator<<(std::ostream &stream, const Color &value)
Operator to send the value as string to a stream
Definition: Settings2D.h:1995
 
Color(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings2D.h:1765
 
const Settings2D::Processing::Color::Gamma & get() const
Definition: Settings2D.h:1952
 
const Settings2D::Processing::Color::Balance::Green & get() const
Definition: Settings2D.h:1934
 
Gamma & gamma()
Get Gamma
Definition: Settings2D.h:1900
 
std::tuple< Settings2D::Processing::Color::Balance, Settings2D::Processing::Color::Balance::Blue, Settings2D::Processing::Color::Balance::Green, Settings2D::Processing::Color::Balance::Red, Settings2D::Processing::Color::Gamma > Descendants
Definition: Settings2D.h:1734
 
const Settings2D::Processing::Color::Balance::Red & get() const
Definition: Settings2D.h:1943
 
Color copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings2D.h:1833
 
const Settings2D::Processing::Color::Balance & get() const
Definition: Settings2D.h:1916
 
Color()
Default constructor
 
const Gamma & gamma() const
Get Gamma
Definition: Settings2D.h:1894
 
const Settings2D::Processing::Color::Balance::Blue & get() const
Definition: Settings2D.h:1925
 
Color & set(const Balance &value)
Set Balance
Definition: Settings2D.h:1866
 
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings2D.h:1979
 
Color & set(const Gamma &value)
Set Gamma
Definition: Settings2D.h:1906
 
Color & set(const Balance::Red &value)
Set Balance::Red
Definition: Settings2D.h:1887
 
Processing related settings
Definition: Settings2D.h:1019
 
const Settings2D::Processing::Color & get() const
Definition: Settings2D.h:2196
 
Processing & set(const Color::Gamma &value)
Set Color::Gamma
Definition: Settings2D.h:2187
 
bool operator!=(const Processing &other) const
Inequality operator
 
bool operator==(const Processing &other) const
Equality operator
 
Processing & set(const Color &value)
Set Color
Definition: Settings2D.h:2152
 
const Settings2D::Processing::Color::Balance & get() const
Definition: Settings2D.h:2204
 
friend std::ostream & operator<<(std::ostream &stream, const Processing &value)
Operator to send the value as string to a stream
Definition: Settings2D.h:2274
 
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings2D.h:2252
 
Color & color()
Get Color
Definition: Settings2D.h:2146
 
void set(Args &&...args)
Set multiple arguments
Definition: Settings2D.h:2083
 
Processing & set(const Color::Balance::Blue &value)
Set Color::Balance::Blue
Definition: Settings2D.h:2166
 
Processing & set(const Color::Balance &value)
Set Color::Balance
Definition: Settings2D.h:2159
 
std::tuple< Settings2D::Processing::Color, Settings2D::Processing::Color::Balance, Settings2D::Processing::Color::Balance::Blue, Settings2D::Processing::Color::Balance::Green, Settings2D::Processing::Color::Balance::Red, Settings2D::Processing::Color::Gamma > Descendants
Definition: Settings2D.h:2019
 
const Color & color() const
Get Color
Definition: Settings2D.h:2140
 
Processing & set(const Color::Balance::Red &value)
Set Color::Balance::Red
Definition: Settings2D.h:2180
 
const Settings2D::Processing::Color::Gamma & get() const
Definition: Settings2D.h:2239
 
const Settings2D::Processing::Color::Balance::Red & get() const
Definition: Settings2D.h:2231
 
Processing copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings2D.h:2120
 
const Settings2D::Processing::Color::Balance::Blue & get() const
Definition: Settings2D.h:2213
 
const Settings2D::Processing::Color::Balance::Green & get() const
Definition: Settings2D.h:2222
 
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: Settings2D.h:2259
 
Processing()
Default constructor
 
Processing(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings2D.h:2051
 
Processing & set(const Color::Balance::Green &value)
Set Color::Balance::Green
Definition: Settings2D.h:2173
 
Settings used when capturing 2D images with a Zivid camera
Definition: Settings2D.h:121
 
Settings2D & set(const Processing &value)
Set Processing
Definition: Settings2D.h:2458
 
const Settings2D::Processing::Color & get() const
Definition: Settings2D.h:2521
 
const Settings2D::Processing::Color::Balance::Red & get() const
Definition: Settings2D.h:2555
 
const Settings2D::Processing::Color::Balance::Green & get() const
Definition: Settings2D.h:2547
 
void save(const std::string &fileName) const
Save to the given file
 
const Settings2D::Processing::Color::Balance::Blue & get() const
Definition: Settings2D.h:2538
 
const Acquisitions & acquisitions() const
Get Acquisitions
Definition: Settings2D.h:2427
 
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings2D.h:2590
 
Settings2D(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings2D.h:2335
 
const Settings2D::Acquisitions & get() const
Definition: Settings2D.h:2507
 
Settings2D()
Default constructor
 
const Settings2D::Processing::Color::Gamma & get() const
Definition: Settings2D.h:2563
 
Settings2D & set(const Acquisitions &value)
Set Acquisitions
Definition: Settings2D.h:2439
 
Settings2D(const std::string &fileName)
Construct Settings2D by loading from file
 
void load(const std::string &fileName)
Load from the given file
 
const Settings2D::Processing::Color::Balance & get() const
Definition: Settings2D.h:2529
 
Settings2D & set(const Processing::Color::Balance::Green &value)
Set Processing::Color::Balance::Green
Definition: Settings2D.h:2486
 
std::tuple< Settings2D::Acquisitions, Settings2D::Processing, Settings2D::Processing::Color, Settings2D::Processing::Color::Balance, Settings2D::Processing::Color::Balance::Blue, Settings2D::Processing::Color::Balance::Green, Settings2D::Processing::Color::Balance::Red, Settings2D::Processing::Color::Gamma > Descendants
Definition: Settings2D.h:2299
 
bool operator!=(const Settings2D &other) const
Inequality operator
 
Settings2D & set(const Processing::Color::Balance &value)
Set Processing::Color::Balance
Definition: Settings2D.h:2472
 
const Settings2D::Processing & get() const
Definition: Settings2D.h:2513
 
Settings2D & set(const Processing::Color::Balance::Red &value)
Set Processing::Color::Balance::Red
Definition: Settings2D.h:2493
 
void set(Args &&...args)
Set multiple arguments
Definition: Settings2D.h:2369
 
Processing & processing()
Get Processing
Definition: Settings2D.h:2452
 
const Processing & processing() const
Get Processing
Definition: Settings2D.h:2446
 
Settings2D copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings2D.h:2408
 
Settings2D & set(const Processing::Color::Balance::Blue &value)
Set Processing::Color::Balance::Blue
Definition: Settings2D.h:2479
 
Acquisitions & acquisitions()
Get Acquisitions
Definition: Settings2D.h:2433
 
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: Settings2D.h:2582
 
bool operator==(const Settings2D &other) const
Equality operator
 
friend std::ostream & operator<<(std::ostream &stream, const Settings2D &value)
Operator to send the value as string to a stream
Definition: Settings2D.h:2606
 
Settings2D & set(const Processing::Color &value)
Set Processing::Color
Definition: Settings2D.h:2465
 
Settings2D & set(const Processing::Color::Gamma &value)
Set Processing::Color::Gamma
Definition: Settings2D.h:2500
 
NodeType
Definition: NodeType.h:100
 
Ret validRange(const CameraInfo &cameraInfo)
Definition: SettingsInfo.h:203
 
The main Zivid namespace. All Zivid code is found here
Definition: Application.h:99