// // ================================================================== // Copyright 2014 Autodesk, Inc. All rights reserved. // // This computer source code and related instructions and comments are // the unpublished confidential and proprietary information of Autodesk, // Inc. and are protected under applicable copyright and trade secret // law. They may not be disclosed to, copied or used by any third party // without the prior written consent of Autodesk, Inc. // ================================================================== // // //! \file synColor/dynamicProperty.h //! //! \brief Definition of a support structure for exchanging color transform //! dynamic property values. //! #ifndef _SYNCOLOR_DYNAMIC_PROPERTY_H #define _SYNCOLOR_DYNAMIC_PROPERTY_H #include #include SYN_VISIBILITY_PUSH namespace SYNCOLOR { //! \brief Dynamic property structure definition. //! //! A dynamic property is a modifiable parameter that affects the result //! produced by a color transform. A specific color transform may or may //! not have dynamic properties. If it does, each dynamic property will be //! one of the properties defined in the SYNCOLOR::DynamicProperty::Ids list. //! //! This structure is generic for all dynamic properties. When obtaining or //! setting a dynamic property value, the appropriate member of the //! SYNCOLOR::DynamicProperty::Values union needs to be read or set. //! See the SYNCOLOR::DynamicProperty::Ids list for the members to use for //! each property. //! struct SYN_EXPORT DynamicProperty { //! \brief List of available color transform dynamic properties. enum Ids { Exposure, //!< Image exposure value (double floating point value). Contrast, //!< Image contrast value (double floating point value). Gamma, //!< Image gamma value (double floating point value). Bypass //!< Bypass color transform section, typically a look sub-transform //! also known as the LOOK_SWITCH property (boolean value). }; //! \brief Constructor. //! \param ID Dynamic property ID. //! \sa SYNCOLOR::DynamicProperty::Ids DynamicProperty(Ids ID) : id(ID) {} //! Dynamic property ID. Ids id; //! Dynamic property value types definition and union member names. union Values { double dVal; //!< Double floating point member. bool bVal; //!< Boolean member. } value; //!< Union instance containing the property value. //! \brief Dynamic property name. //! //! \param ID Property ID. //! \return Property name string.. //! //! \note This string is not to be freed. static const char* getName(Ids ID); }; } SYN_VISIBILITY_POP #endif //_SYNCOLOR_DYNAMIC_PROPERTY_H