|
ACF $AcfVersion:0$
|
Primitive for representation of CIE Lab color values. More...
#include <CLab.h>
Public Types | |
| enum | ComponentIndex { CI_L , CI_A , CI_B } |
| typedef TComposedColor< 3 > | BaseClass |
Public Types inherited from icmm::TComposedColor< 3 > | |
| typedef imath::TVector< Size > | BaseClass |
| typedef BaseClass::Elements | Elements |
Public Types inherited from imath::TVector< Size, Element > | |
| typedef Element | ElementType |
| typedef Element | Elements[Size] |
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 | |
| CLab (double l=0.0, double a=0.0, double b=0.0) | |
| CLab (const CLab &color) | |
| double | GetL () const |
| void | SetL (double value) |
| double | GetA () const |
| void | SetA (double value) |
| double | GetB () const |
| void | SetB (double value) |
| virtual bool | Serialize (iser::IArchive &archive) override |
| Load or store state of this object as a archive stream. | |
| double | GetDeltaE (const CLab &lab) const |
| CLab | operator+ (const CLab &color) const |
| CLab | operator- (const CLab &color) const |
| CLab | operator* (const CLab &color) const |
| CLab | operator/ (const CLab &color) const |
| CLab | operator* (double value) const |
| CLab | operator/ (double value) const |
| CLab & | operator= (const CLab &color) |
| const CLab & | operator+= (const CLab &color) |
| const CLab & | operator-= (const CLab &color) |
| const CLab & | operator*= (const CLab &color) |
| const CLab & | operator/= (const CLab &color) |
| const CLab & | operator*= (double value) |
| const CLab & | operator/= (double value) |
Public Member Functions inherited from icmm::TComposedColor< 3 > | |
| TComposedColor () | |
| TComposedColor (const BaseClass &value) | |
| TComposedColor (const imath::CVarVector &vector) | |
| TComposedColor (const TComposedColor< Size > &color)=default | |
| void | GetRounded (const imath::IDoubleManip &manipulator, TComposedColor< Size > &result) |
| Get color after components value rounding with specified precision. | |
| bool | IsRoundedEqual (const TComposedColor< Size > &color, const imath::IDoubleManip &manipulator) const |
| Check if two values are equal after rounding. | |
| bool | IsSimilar (const TComposedColor< Size > &color, double tolerance=I_BIG_EPSILON) const |
| Allows to compare two colors with tolerance. | |
| bool | IsNormalized () const |
| Check if this color value is normalized. | |
| void | Normalize () |
| Make this color to be normalized. | |
| void | GetNormalized (TComposedColor< Size > &result) const |
| Get normalized color. | |
| TComposedColor< Size > | operator+ (const TComposedColor< Size > &color) const |
| TComposedColor< Size > | operator- (const TComposedColor< Size > &color) const |
| TComposedColor< Size > | operator* (const TComposedColor< Size > &color) const |
| TComposedColor< Size > | operator* (double value) const |
| TComposedColor< Size > | operator/ (const TComposedColor< Size > &color) const |
| TComposedColor< Size > | operator/ (double value) const |
| const TComposedColor< Size > & | operator= (const TComposedColor< Size > &color) |
| const TComposedColor< Size > & | operator= (double colorValue) |
| const TComposedColor< Size > & | operator+= (const TComposedColor< Size > &color) |
| const TComposedColor< Size > & | operator-= (const TComposedColor< Size > &color) |
| const TComposedColor< Size > & | operator*= (const TComposedColor< Size > &color) |
| const TComposedColor< Size > & | operator*= (double value) |
| const TComposedColor< Size > & | operator/= (const TComposedColor< Size > &color) |
| const TComposedColor< Size > & | operator/= (double value) |
Public Member Functions inherited from imath::TVector< Size, Element > | |
| TVector () | |
| Creates an uninitialized vector. | |
| TVector (const TVector< Size, Element > &vector) | |
| Creates a copy of another vector. | |
| TVector (std::initializer_list< Element > values) | |
| Creates a vector from an initializer list. | |
| const Element & | GetElement (int i) const |
| Gets the element at the specified index (read-only). | |
| Element & | GetElementRef (int i) |
| Gets a reference to the element at the specified index (read-write). | |
| void | SetElement (int i, const Element &value) |
| Sets the element at the specified index. | |
| void | SetAllElements (const Element &value) |
| Sets all elements to the same value. | |
| void | Reset () |
| Sets all coordinates to zero. | |
| void | Clear () |
| Sets all coordinates to zero. | |
| const TVector< Size, Element >::Elements & | GetElements () const |
| Get read-only access to internal element container. | |
| TVector< Size, Element >::Elements & | GetElementsRef () |
| Get access to internal element container. | |
| void | Translate (const TVector< Size, Element > &vector) |
| Translates (adds) another vector to this vector. | |
| TVector< Size, Element > | GetTranslated (const TVector< Size, Element > &vector) |
| Returns a new vector that is the translation of this vector. | |
| void | GetTranslated (const TVector< Size, Element > &vector, TVector< Size, Element > &result) |
| Computes the translated vector and stores it in the result parameter. | |
| void | ScaledCumulate (const TVector< Size, Element > &vector, Element scale) |
| Adds a scaled vector to this vector. | |
| bool | IsNull (Element tolerance=I_BIG_EPSILON) const |
| Checks if this vector is null (all elements approximately zero). | |
| Element | GetDotProduct (const TVector< Size, Element > &vector) const |
| Calculates the dot product with another vector. | |
| Element | GetLength2 () const |
| Calculates the squared Euclidean length of the vector. | |
| Element | GetLength () const |
| Calculates the Euclidean length (magnitude) of the vector. | |
| Element | GetDistance2 (const TVector< Size, Element > &vector) const |
| Calculates the squared distance to another vector. | |
| Element | GetDistance (const TVector< Size, Element > &vector) const |
| Calculates the Euclidean distance to another vector. | |
| Element | GetElementsSum () const |
| Calculates the sum of all vector elements. | |
| bool | Normalize (Element length=1.0) |
| Normalizes the vector to a specified length. | |
| bool | GetNormalized (TVector< Size, Element > &result, Element length=1.0) const |
| Returns a normalized copy of this vector with specified length. | |
| void | GetMinimal (const TVector< Size, Element > &vector, TVector< Size, Element > &result) const |
| Get vector with minimal elements values. | |
| void | GetMaximal (const TVector< Size, Element > &vector, TVector< Size, Element > &result) const |
| Get vector with maximal elements values. | |
| bool | Serialize (iser::IArchive &archive) |
| Serialize this vector to specified archive. | |
| bool | operator== (const TVector< Size, Element > &vector) const |
| bool | operator!= (const TVector< Size, Element > &vector) const |
| bool | operator< (const TVector< Size, Element > &vector) const |
| bool | operator> (const TVector< Size, Element > &vector) const |
| bool | operator<= (const TVector< Size, Element > &vector) const |
| bool | operator>= (const TVector< Size, Element > &vector) const |
| TVector< Size, Element > & | operator= (const TVector< Size, Element > &vector)=default |
| TVector< Size, Element > | operator- () const |
| TVector< Size, Element > | operator+ (const TVector< Size, Element > &vector) const |
| TVector< Size, Element > | operator- (const TVector< Size, Element > &vector) const |
| TVector< Size, Element > | operator* (Element scalar) const |
| TVector< Size, Element > | operator/ (Element scalar) const |
| TVector< Size, Element > & | operator+= (const TVector< Size, Element > &vector) |
| TVector< Size, Element > & | operator-= (const TVector< Size, Element > &vector) |
| TVector< Size, Element > & | operator*= (Element scalar) |
| TVector< Size, Element > & | operator/= (Element scalar) |
| const Element & | operator[] (int i) const |
| Element & | operator[] (int i) |
Public Member Functions inherited from iser::ISerializable | |
| virtual quint32 | GetMinimalVersion (int versionId) const |
| Get minimal needed version to correct storing of this data. | |
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 imath::TVector< Size, Element > | |
| static int | GetElementsCount () |
| Get number of elements. | |
| static bool | SetElementsCount (int count) |
| Set number of elements. | |
| static const TVector< Size, Element > & | GetZero () |
| Get vector with all coordinates set to 0. | |
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. | |
Protected Attributes inherited from imath::TVector< Size, Element > | |
| Elements | m_elements |
Primitive for representation of CIE Lab color values.
CLab represents colors in the CIE L*a*b* color space, a device-independent, perceptually uniform color model designed to approximate human vision. Unlike RGB or CMYK, Lab is designed so that the numerical difference between two colors corresponds to the perceptual difference seen by humans. This makes it ideal for color comparison, color correction, and gamut mapping.
Lab consists of three coordinates:
The a* and b* axes represent opponent color dimensions:
Perceptual Uniformity:**
Makes it ideal for DeltaE (Delta E) color difference calculations
Device Independence:**
Provides absolute color definition
Gamut Mapping:**
The DeltaE value quantifies the perceptual difference between two colors:
DeltaE76 (CIE 1976):**
Available via GetDeltaE() method
Interpretation:**
| typedef TComposedColor<3> icmm::CLab::BaseClass |
|
inline |
|
inline |
Definition at line 292 of file CLab.h.
References CI_A, and imath::TVector< Size, Element >::GetElement().
|
inline |
Definition at line 304 of file CLab.h.
References CI_B, and imath::TVector< Size, Element >::GetElement().
| double icmm::CLab::GetDeltaE | ( | const CLab & | lab | ) | const |
|
inline |
Definition at line 280 of file CLab.h.
References CI_L, and imath::TVector< Size, Element >::GetElement().
Definition at line 402 of file CLab.h.
References icmm::TComposedColor< 3 >::operator*=().
|
inline |
Definition at line 418 of file CLab.h.
References icmm::TComposedColor< 3 >::operator*=().
Definition at line 386 of file CLab.h.
References icmm::TComposedColor< 3 >::operator+=().
Definition at line 394 of file CLab.h.
References icmm::TComposedColor< 3 >::operator-=().
Definition at line 410 of file CLab.h.
References icmm::TComposedColor< 3 >::operator/=().
|
inline |
Definition at line 426 of file CLab.h.
References icmm::TComposedColor< 3 >::operator/=().
Definition at line 378 of file CLab.h.
References icmm::TComposedColor< 3 >::operator=().
|
overridevirtual |
Load or store state of this object as a archive stream.
Type of operation is depending on archive type.
Reimplemented from icmm::TComposedColor< 3 >.
|
inline |
Definition at line 298 of file CLab.h.
References CI_A, and imath::TVector< Size, Element >::SetElement().
|
inline |
Definition at line 310 of file CLab.h.
References CI_B, and imath::TVector< Size, Element >::SetElement().
|
inline |
Definition at line 286 of file CLab.h.
References CI_L, and imath::TVector< Size, Element >::SetElement().