ACF $AcfVersion:0$
Public Member Functions | Protected Types | Protected Attributes | List of all members
icmm::CSubstractiveColorModelBase Class Reference

#include <CSubstractiveColorModelBase.h>

Inheritance diagram for icmm::CSubstractiveColorModelBase:
icmm::ISubstractiveColorModel icmm::IColorModel icmm::IColorantList istd::IChangeable istd::IChangeable istd::IPolymorphic istd::IPolymorphic icmm::CCmyColorModel icmm::CSubstractiveColorModel icmm::CCmykColorModel

Public Member Functions

 CSubstractiveColorModelBase ()
 
const icmm::CTristimulusSpecificationGetPreviewSpec () const
 
void SetPreviewSpec (const ITristimulusSpecification &previewSpec)
 
void SetColorantPreview (const ColorantId &colorantId, const icmm::CLab &preview)
 
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 bool GetColorantVisualInfo (const ColorantId &colorantId, icmm::ICieLabColor &preview) const override
 Get visual information/preview for the given colorant.
 
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.
 
- Public Member Functions inherited from icmm::ISubstractiveColorModel
virtual std::unique_ptr< ISubstractiveColorModelCreateSubspaceModel (const QStringList &colorantIds) const =0
 Create ColorModel of the subspace.
 
- Public Member Functions inherited from icmm::IColorModel
virtual IColorSpecification::ConstColorSpecPtr GetSpecification () const
 Gets the color specification for this model, if available.
 
- Public Member Functions inherited from istd::IChangeable
virtual bool IsEqual (const IChangeable &object) const
 Compare this object with another object.
 
virtual istd::TUniqueInterfacePtr< istd::IChangeableCloneMe (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 ()
 
- Public Member Functions inherited from icmm::IColorantList
virtual ColorantIds GetColorantIds () const =0
 Get the list of colorant-IDs.
 
virtual ColorantUsage GetColorantUsage (const ColorantId &colorantId) const =0
 Get type of the colorant with the given ID.
 

Protected Types

typedef QMap< ColorantId, icmm::CLabColorantPreviewMap
 Mapping between a colorant and corresponding Lab value for its solid value.
 

Protected Attributes

icmm::CTristimulusSpecification m_previewSpec
 Tristimulus specification used for all colorants in the color model.
 
ColorantPreviewMap m_colorantPreviewMap
 

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
 
- Public Types inherited from icmm::IColorantList
typedef QString ColorantId
 
typedef QStringList ColorantIds
 
- 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

Definition at line 18 of file CSubstractiveColorModelBase.h.

Member Typedef Documentation

◆ ColorantPreviewMap

Mapping between a colorant and corresponding Lab value for its solid value.

Definition at line 54 of file CSubstractiveColorModelBase.h.

Constructor & Destructor Documentation

◆ CSubstractiveColorModelBase()

icmm::CSubstractiveColorModelBase::CSubstractiveColorModelBase ( )

Member Function Documentation

◆ CopyFrom()

virtual bool icmm::CSubstractiveColorModelBase::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.

Reimplemented in icmm::CSubstractiveColorModel.

◆ CreateColorTranformation()

virtual const icmm::IColorTransformation * icmm::CSubstractiveColorModelBase::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.

◆ GetColorantVisualInfo()

virtual bool icmm::CSubstractiveColorModelBase::GetColorantVisualInfo ( const ColorantId colorantId,
icmm::ICieLabColor preview 
) const
overridevirtual

Get visual information/preview for the given colorant.

Implements icmm::ISubstractiveColorModel.

◆ GetColorSpaceClass()

virtual ColorSpaceClass icmm::CSubstractiveColorModelBase::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::CSubstractiveColorModelBase::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::CSubstractiveColorModelBase::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::CSubstractiveColorModelBase::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::CSubstractiveColorModelBase::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::CSubstractiveColorModelBase::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.

◆ GetPreviewSpec()

const icmm::CTristimulusSpecification & icmm::CSubstractiveColorModelBase::GetPreviewSpec ( ) const

◆ GetSupportedOperations()

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

Get set of flags for supported operations.

See also
SupportedOperations

Reimplemented from istd::IChangeable.

Reimplemented in icmm::CSubstractiveColorModel.

◆ SetColorantPreview()

void icmm::CSubstractiveColorModelBase::SetColorantPreview ( const ColorantId colorantId,
const icmm::CLab preview 
)

◆ SetPreviewSpec()

void icmm::CSubstractiveColorModelBase::SetPreviewSpec ( const ITristimulusSpecification previewSpec)

Member Data Documentation

◆ m_colorantPreviewMap

ColorantPreviewMap icmm::CSubstractiveColorModelBase::m_colorantPreviewMap
protected

Definition at line 55 of file CSubstractiveColorModelBase.h.

◆ m_previewSpec

icmm::CTristimulusSpecification icmm::CSubstractiveColorModelBase::m_previewSpec
protected

Tristimulus specification used for all colorants in the color model.

Definition at line 49 of file CSubstractiveColorModelBase.h.


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