|
ACF $AcfVersion:0$
|
Common interface for color model definitions in the ACF color management system. More...
#include <IColorModel.h>
Public Types | |
| enum | ModelType { MT_HSI , MT_HSV , MT_HSL , MI_YIQ , MI_YUV , MI_YCBCR , MT_RGB , MT_COLORANTS , MT_LUV , MT_LAB , MT_LCH , MT_XYZ , MT_YXY , MI_SPECTRAL , MI_USER = 1024 } |
| enum | ModelClass { MC_DEVICE_DEPENDENT , MC_DEVICE_INDEPENDENT } |
| enum | ColorSpaceClass { CSC_ADDITIVE , CSC_SUBSTRACTIVE , CSC_PERCEPTUAL } |
Public Types inherited from istd::IChangeable | |
| enum | ChangeFlags { CF_ACF_INTERNAL = 0 , CF_ALL_DATA , CF_ANY , CF_DESTROYING , CF_DELEGATED , CF_NO_UNDO } |
| Data model change notification flags. More... | |
| enum | SupportedOperations { SO_NONE = 0 , SO_OBSERVE = 1 << 0 , SO_COPY = 1 << 1 , SO_CLONE = 1 << 2 , SO_COMPARE = 1 << 3 , SO_RESET = 1 << 4 } |
| Flags for supported operations. More... | |
| enum | CompatibilityMode { CM_STRICT , CM_WITHOUT_REFS , CM_WITH_REFS , CM_CONVERT } |
| Control how relationship betweeen objects are interpreted. More... | |
| typedef QMultiMap< QByteArray, QVariant > | ChangeInfoMap |
Public Member Functions | |
| virtual ModelType | GetModelType () const =0 |
| Gets the type of the color model. | |
| virtual ModelClass | GetModelClass () const =0 |
| Gets the classification of the color model. | |
| virtual ColorSpaceClass | GetColorSpaceClass () const =0 |
| Gets the classification of the color space defined by this model. | |
| virtual int | GetColorSpaceDimensionality () const =0 |
| Gets the dimensionality (number of components) of the color space. | |
| virtual const imath::IUnitInfo * | GetColorSpaceComponentInfo (int componentIndex) const =0 |
| Gets mathematical unit information for a color model component. | |
| virtual QString | GetColorSpaceComponentName (int componentIndex) const =0 |
| Gets the human-readable name of a color model component. | |
| virtual const icmm::IColorTransformation * | CreateColorTranformation (const IColorModel &otherColorModel, const QByteArray &transformationId=QByteArray()) const =0 |
| Creates a color transformation for conversion to another color model. | |
| virtual IColorSpecification::ConstColorSpecPtr | GetSpecification () const |
| Gets the color specification for this model, if available. | |
Public Member Functions inherited from istd::IChangeable | |
| virtual int | GetSupportedOperations () const |
| Get set of flags for supported operations. | |
| virtual bool | CopyFrom (const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS) |
| Copy this object from another one. | |
| virtual bool | IsEqual (const IChangeable &object) const |
| Compare this object with another object. | |
| virtual istd::TUniqueInterfacePtr< istd::IChangeable > | CloneMe (CompatibilityMode mode=CM_WITHOUT_REFS) const |
| Make a copy of this object. | |
| virtual bool | ResetData (CompatibilityMode mode=CM_WITHOUT_REFS) |
| Reset data to its default state. | |
| virtual void | BeginChanges (const ChangeSet &changeSet) |
| Starts the change transaction. | |
| virtual void | EndChanges (const ChangeSet &changeSet) |
| Ends the change transaction. | |
| virtual void | BeginChangeGroup (const ChangeSet &changeSet) |
| Starts group of changes. | |
| virtual void | EndChangeGroup (const ChangeSet &changeSet) |
| Ends group of changes. | |
Public Member Functions inherited from istd::IPolymorphic | |
| virtual | ~IPolymorphic () |
Additional Inherited Members | |
Static Public Member Functions inherited from istd::IChangeable | |
| static const ChangeSet & | GetNoChanges () |
| Get empty set of changes. | |
| static const ChangeSet & | GetAnyChange () |
| Get anonymous change set. | |
| static const ChangeSet & | GetAllChanges () |
| Get anonymous change set. | |
| static const ChangeSet & | GetDelegatedChanges () |
| Get delegated change set. | |
Protected Member Functions inherited from istd::IChangeable | |
| virtual void | OnBeginChanges () |
| Callback function for begin change event. | |
| virtual void | OnEndChanges (const ChangeSet &changeSet) |
| Callback function for end change event. | |
Common interface for color model definitions in the ACF color management system.
IColorModel defines the abstract interface for color models (color spaces) in ACF. A color model represents a mathematical system for representing colors as tuples of numbers (typically 3-4 components). Examples include RGB, CMYK, HSV, CIE Lab, etc. This interface provides metadata about the color space and enables color transformations between different models.
ACF supports various color model types through the ModelType enumeration:
Device-Dependent Models:**
HSI (MT_HSI): Hue, Saturation, Intensity
Device-Independent Models:**
Spectral (MI_SPECTRAL): Full spectral representation
Video/Broadcast:**
Color models are classified along two dimensions:
Model Class:**
Device-Independent (MC_DEVICE_INDEPENDENT): Absolute color (XYZ, Lab)
Color Space Class:**
Color transformations convert colors from one model to another. Not all transformations are available directly:
Definition at line 183 of file IColorModel.h.
| Enumerator | |
|---|---|
| CSC_ADDITIVE | |
| CSC_SUBSTRACTIVE | |
| CSC_PERCEPTUAL | |
Definition at line 224 of file IColorModel.h.
| Enumerator | |
|---|---|
| MC_DEVICE_DEPENDENT | |
| MC_DEVICE_INDEPENDENT | |
Definition at line 218 of file IColorModel.h.
Definition at line 186 of file IColorModel.h.
|
pure virtual |
Creates a color transformation for conversion to another color model.
Constructs and returns a transformation object that can convert colors from this model to the specified target model. The transformation may be direct or may internally use intermediate color spaces (typically XYZ).
| otherColorModel | The target color model to convert to |
| transformationId | Optional identifier for a specific transformation algorithm. Empty (default) uses the standard transformation. |
Implemented in icmm::CRgbColorModel, icmm::CCieLabColorModel, icmm::CSpectralColorModel, and icmm::CSubstractiveColorModelBase.
|
pure virtual |
Gets the classification of the color space defined by this model.
Indicates the physical basis of color mixing: additive (light-based), subtractive (pigment-based), or perceptual (human perception-based).
Implemented in icmm::CCieLabColorModel, icmm::CRgbColorModel, icmm::CSpectralColorModel, and icmm::CSubstractiveColorModelBase.
|
pure virtual |
Gets mathematical unit information for a color model component.
Returns information about the mathematical unit, range, and properties of the specified component (axis) in the color space.
| componentIndex | Zero-based index of the component (0 to dimensionality-1) |
Implemented in icmm::CCieLabColorModel, icmm::CRgbaColorModel, icmm::CRgbColorModel, icmm::CSpectralColorModel, and icmm::CSubstractiveColorModelBase.
|
pure virtual |
Gets the human-readable name of a color model component.
Returns the name of the component at the specified index, such as "Red", "Green", "Blue" for RGB, or "Lightness", "a*", "b*" for Lab.
| componentIndex | Zero-based index of the component |
Implemented in icmm::CCieLabColorModel, icmm::CRgbaColorModel, icmm::CRgbColorModel, icmm::CSpectralColorModel, and icmm::CSubstractiveColorModelBase.
|
pure virtual |
Gets the dimensionality (number of components) of the color space.
Returns the number of values needed to represent a color in this model. Common values are 3 (RGB, HSV, Lab) or 4 (CMYK). Spectral models may have higher dimensionality.
Implemented in icmm::CCieLabColorModel, icmm::CRgbaColorModel, icmm::CRgbColorModel, icmm::CSpectralColorModel, and icmm::CSubstractiveColorModelBase.
|
pure virtual |
Gets the classification of the color model.
Indicates whether the color model is device-dependent or device-independent. Device-dependent models (RGB, CMYK) produce different colors on different devices, while device-independent models (XYZ, Lab) represent absolute colors.
Implemented in icmm::CCieLabColorModel, icmm::CRgbColorModel, icmm::CSpectralColorModel, and icmm::CSubstractiveColorModelBase.
|
pure virtual |
Gets the type of the color model.
Returns the specific type identifier for this color model (e.g., MT_RGB, MT_CMYK). This identifies the mathematical representation and component structure.
Implemented in icmm::CCieLabColorModel, icmm::CRgbColorModel, icmm::CSpectralColorModel, and icmm::CSubstractiveColorModelBase.
|
inlinevirtual |
Gets the color specification for this model, if available.
Returns additional specification information about the color model, such as white point, primaries (for RGB), or viewing conditions (for Lab). Not all models have specifications.
Reimplemented in icmm::CCieLabColorModel, icmm::CRgbColorModel, and icmm::CSpectralColorModel.
Definition at line 402 of file IColorModel.h.