ACF $AcfVersion:0$
Public Member Functions | List of all members
icmm::CCieLabColorModel Class Reference

CCieLabColorModel implements the CIE Lab color model. More...

#include <CCieLabColorModel.h>

Inheritance diagram for icmm::CCieLabColorModel:
icmm::IColorModel istd::IChangeable istd::IPolymorphic

Public Member Functions

 CCieLabColorModel (const ITristimulusSpecification &spec=CTristimulusSpecification())
 Constructs a CIE Lab color model with the given tristimulus specification.
 
void SetTristimulusSpecification (const ITristimulusSpecification &spec)
 Sets the tristimulus specification for this color model.
 
const ITristimulusSpecificationGetTristimulusSpecification () const
 Returns the current tristimulus specification.
 
virtual ModelType GetModelType () const override
 Gets the type of the color model.
 
virtual ModelClass GetModelClass () const override
 Gets the classification of the color model.
 
virtual ColorSpaceClass GetColorSpaceClass () const override
 Gets the classification of the color space defined by this model.
 
virtual int GetColorSpaceDimensionality () const override
 Gets the dimensionality (number of components) of the color space.
 
virtual const imath::IUnitInfoGetColorSpaceComponentInfo (int componentIndex) const override
 Gets mathematical unit information for a color model component.
 
virtual QString GetColorSpaceComponentName (int componentIndex) const override
 Gets the human-readable name of a color model component.
 
virtual const icmm::IColorTransformationCreateColorTranformation (const IColorModel &otherColorModel, const QByteArray &transformationId=QByteArray()) const override
 Creates a color transformation for conversion to another color model.
 
virtual IColorSpecification::ConstColorSpecPtr GetSpecification () const override
 Gets the color specification for this model, if available.
 
virtual int GetSupportedOperations () const override
 Get set of flags for supported operations.
 
virtual bool CopyFrom (const istd::IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS) override
 Copy this object from another one.
 
virtual istd::IChangeableUniquePtr CloneMe (CompatibilityMode mode=CM_WITHOUT_REFS) const override
 Make a copy of this object.
 
- Public Member Functions inherited from istd::IChangeable
virtual bool IsEqual (const IChangeable &object) const
 Compare this object with another 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

- Public Types inherited from icmm::IColorModel
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
 
- Static Public Member Functions inherited from istd::IChangeable
static const ChangeSetGetNoChanges ()
 Get empty set of changes.
 
static const ChangeSetGetAnyChange ()
 Get anonymous change set.
 
static const ChangeSetGetAllChanges ()
 Get anonymous change set.
 
static const ChangeSetGetDelegatedChanges ()
 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.
 

Detailed Description

CCieLabColorModel implements the CIE Lab color model.

This class provides a device-independent color model based on the CIE Lab color space. It allows configuration of the tristimulus specification and provides information about the color space, its components, and related transformations.

Definition at line 23 of file CCieLabColorModel.h.

Constructor & Destructor Documentation

◆ CCieLabColorModel()

icmm::CCieLabColorModel::CCieLabColorModel ( const ITristimulusSpecification spec = CTristimulusSpecification())

Constructs a CIE Lab color model with the given tristimulus specification.

Parameters
specTristimulus specification to use for the model.

Member Function Documentation

◆ CloneMe()

virtual istd::IChangeableUniquePtr icmm::CCieLabColorModel::CloneMe ( CompatibilityMode  mode = CM_WITHOUT_REFS) const
overridevirtual

Make a copy of this object.

Returns
new instance or NULL, if this operation is not supported.

Reimplemented from istd::IChangeable.

◆ CopyFrom()

virtual bool icmm::CCieLabColorModel::CopyFrom ( const istd::IChangeable object,
CompatibilityMode  mode = CM_WITHOUT_REFS 
)
overridevirtual

Copy this object from another one.

Default implementation in istd::IChangeable does nothing.

Reimplemented from istd::IChangeable.

◆ CreateColorTranformation()

virtual const icmm::IColorTransformation * icmm::CCieLabColorModel::CreateColorTranformation ( const IColorModel otherColorModel,
const QByteArray &  transformationId = QByteArray() 
) const
overridevirtual

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).

Parameters
otherColorModelThe target color model to convert to
transformationIdOptional identifier for a specific transformation algorithm. Empty (default) uses the standard transformation.
Returns
Pointer to the created IColorTransformation, or nullptr if no transformation is available. Caller owns the returned pointer and must delete it when done.
Note
The returned transformation is newly allocated. Delete it after use.
Returns nullptr if no transformation path exists between the models.
For repeated conversions, cache the transformation for performance.
// Create RGB to Lab transformation
const IColorTransformation* transform =
rgbModel.CreateColorTranformation(labModel);
if (transform) {
// Use transformation
icmm::CVarColor rgbColor(3);
rgbColor.SetElement(0, 1.0); // Red
rgbColor.SetElement(1, 0.0); // Green
rgbColor.SetElement(2, 0.0); // Blue
icmm::CVarColor labColor;
transform->Calculate(rgbColor, labColor);
delete transform; // Clean up
}
CCieLabColorModel implements the CIE Lab color model.
Concrete RGB color model implementation.
virtual const icmm::IColorTransformation * CreateColorTranformation(const IColorModel &otherColorModel, const QByteArray &transformationId) const override
Creates a color transformation for conversion to another color model.
Generic color implementation with variable number of color components.
Definition CVarColor.h:176
Basic interface for color transformations between color models.
See also
IColorTransformation, CVarColor

Implements icmm::IColorModel.

◆ GetColorSpaceClass()

virtual ColorSpaceClass icmm::CCieLabColorModel::GetColorSpaceClass ( ) const
overridevirtual

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).

Returns
ColorSpaceClass classification
See also
ColorSpaceClass, GetModelType()

Implements icmm::IColorModel.

◆ GetColorSpaceComponentInfo()

virtual const imath::IUnitInfo * icmm::CCieLabColorModel::GetColorSpaceComponentInfo ( int  componentIndex) const
overridevirtual

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.

Parameters
componentIndexZero-based index of the component (0 to dimensionality-1)
Returns
Pointer to IUnitInfo describing the component's unit, or nullptr if index is invalid. The pointer is owned by the color model.
Note
Most color components range from 0.0 to 1.0, but some (like Lab) have different ranges (L: 0-100, a: -128 to 127, b: -128 to 127).
const imath::IUnitInfo* info = model->GetColorSpaceComponentInfo(0);
if (info) {
double minVal = info->GetMinValue();
double maxVal = info->GetMaxValue();
QString unit = info->GetUnitName();
}
Common interface to get information about a measurement unit.
Definition IUnitInfo.h:22
virtual QString GetUnitName() const =0
Get name of unit.
See also
GetColorSpaceComponentName(), GetColorSpaceDimensionality()

Implements icmm::IColorModel.

◆ GetColorSpaceComponentName()

virtual QString icmm::CCieLabColorModel::GetColorSpaceComponentName ( int  componentIndex) const
overridevirtual

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.

Parameters
componentIndexZero-based index of the component
Returns
Component name as a QString, or empty string if index is invalid
// Get RGB component names
QString name0 = rgb.GetColorSpaceComponentName(0); // "Red"
QString name1 = rgb.GetColorSpaceComponentName(1); // "Green"
QString name2 = rgb.GetColorSpaceComponentName(2); // "Blue"
virtual QString GetColorSpaceComponentName(int componentIndex) const override
Gets the human-readable name of a color model component.
See also
GetColorSpaceComponentInfo(), GetColorSpaceDimensionality()

Implements icmm::IColorModel.

◆ GetColorSpaceDimensionality()

virtual int icmm::CCieLabColorModel::GetColorSpaceDimensionality ( ) const
overridevirtual

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.

Returns
Number of components/dimensions in the color space
// RGB has 3 components
int dims = rgbModel.GetColorSpaceDimensionality(); // returns 3
// CMYK has 4 components
dims = cmykModel.GetColorSpaceDimensionality(); // returns 4
CMYK color model implementation for four-color printing.
virtual int GetColorSpaceDimensionality() const override
Gets the dimensionality (number of components) of the color space.
virtual int GetColorSpaceDimensionality() const override
Gets the dimensionality (number of components) of the color space.
See also
GetColorSpaceComponentName(), GetColorSpaceComponentInfo()

Implements icmm::IColorModel.

◆ GetModelClass()

virtual ModelClass icmm::CCieLabColorModel::GetModelClass ( ) const
overridevirtual

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.

Returns
ModelClass classification
See also
ModelClass, GetModelType()

Implements icmm::IColorModel.

◆ GetModelType()

virtual ModelType icmm::CCieLabColorModel::GetModelType ( ) const
overridevirtual

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.

Returns
The ModelType enumeration value identifying this color model
See also
ModelType, GetModelClass(), GetColorSpaceClass()

Implements icmm::IColorModel.

◆ GetSpecification()

virtual IColorSpecification::ConstColorSpecPtr icmm::CCieLabColorModel::GetSpecification ( ) const
overridevirtual

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.

Returns
Shared pointer to the color specification, or empty pointer if no specification is available
Note
This is optional metadata. Most basic operations don't require it.
See also
IColorSpecification

Reimplemented from icmm::IColorModel.

◆ GetSupportedOperations()

virtual int icmm::CCieLabColorModel::GetSupportedOperations ( ) const
overridevirtual

Get set of flags for supported operations.

See also
SupportedOperations

Reimplemented from istd::IChangeable.

◆ GetTristimulusSpecification()

const ITristimulusSpecification & icmm::CCieLabColorModel::GetTristimulusSpecification ( ) const

Returns the current tristimulus specification.

Returns
Reference to the tristimulus specification.

◆ SetTristimulusSpecification()

void icmm::CCieLabColorModel::SetTristimulusSpecification ( const ITristimulusSpecification spec)

Sets the tristimulus specification for this color model.

Parameters
specNew tristimulus specification.

The documentation for this class was generated from the following file: