Class: TCMYKColor

Declaration: CMYKColor.h

Taxonomy Categories:

Member Functions:


Interface Category:

API.

Inherits From:

TColor

Inherited By:

None.

Purpose:

TCMYKColor derives from TColor. The TCMYKColor class defines a color model of Cyan, Magenta, Yellow, and Black. The CMYK primaries, which are subtractive, are used for most color hard-copy devices. Most hard-copy devices deposit colored pigments onto paper. When a surface is coated with cyan ink, for example, no red light is reflected. Cyan subtracts red light from reflected white light. The CMYK values are calculated by first determining CMY values present in a color. The amount of black present in the color is determined by the relationship K =minimum(C,M,Y). K is then subtracted from CMY values to define the CMYK values. This technique, called under-color removal, enables hard-copy color devices to increase output quality by printing with four instead of three colors. Values of the primaries should be constrained to the range between 0.0 and 1.0, inclusive. Member functions are provided to clamp the CMYK primaries to this range. The CMYK color model is uncalibrated; therefore, CMYK colors must be defined with respect to a particular color device through a color profile. The class provides arithmetic operators that operate on two colors.

Instantiation:

Allocate on the heap or the stack.

Deriving Classes:

Derive new color models from TColor.

Concurrency:

Multithread safe.

Resource Use:

No special requirements.

Member Function: TCMYKColor::TCMYKColor

  1. TCMYKColor ()
  2. TCMYKColor (const TColor & aColor)
  3. TCMYKColor (TColorProfile * theDeviceColorProfile)
  4. TCMYKColor (GIntensity aCyan, GIntensity aMagenta, GIntensity aYellow, GIntensity aBlack, GIntensity opacity =1.0)
  5. TCMYKColor (const TCMYKColor & aCMYKColor)
  6. TCMYKColor (TColorProfile * theDeviceColorProfile, GIntensity aCyan, GIntensity aMagenta, GIntensity aYellow, GIntensity aBlack, GIntensity opacity =1.0)

Interface Category:

API.

Purpose:

  1. Default constructor; it has the default color profile, and color components are not initialized.
  2. Creates a TCMYKColor from a TColor.
  3. Creates a TCMYKColor with the specified color profile. The color components are not initialized.
  4. Creates a TCMYKColor with the specified components. It has the default color profile.
  5. Copy constructor.
  6. Creates a TCMYKColor with the specified components and color profile.

Calling Context:

  1. Called by the stream-in operators. You can also call this function directly.
  2. Call this function directly.
  3. Call this function directly.
  4. Call this function directly.
  5. Called to copy an object. You can also call this function directly.
  6. Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Member Function: TCMYKColor::GetComponents

void GetComponents (GIntensity & aCyan, GIntensity & aMagenta, GIntensity & aYellow, GIntensity & aBlack, GIntensity & opacity) const

Interface Category:

API.

Purpose:

Gets the components of this TCMYKColor.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::GetClampedComponents

void GetClampedComponents (GIntensity & aCyan, GIntensity & aMagenta, GIntensity & aYellow, GIntensity & aBlack, GIntensity & opacity) const

Interface Category:

API.

Purpose:

Gets the components of this TCMYKColor clamped between 0.0 <= N <=1.0.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::GetCyan

GIntensity GetCyan () const

Interface Category:

API.

Purpose:

Gets the cyan component of this TCMYKColor.

Calling Context:

Call this function directly.

Parameters:

Return Value:

Returns the cyan component of the color.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::GetMagenta

GIntensity GetMagenta () const

Interface Category:

API.

Purpose:

Gets the magenta component of this TCMYKColor.

Calling Context:

Call this function directly.

Parameters:

Return Value:

Returns the magenta component of the color.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::GetYellow

GIntensity GetYellow () const

Interface Category:

API.

Purpose:

Gets the yellow component of this TCMYKColor.

Calling Context:

Call this function directly.

Parameters:

Return Value:

Returns the yellow component of the color.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::GetBlack

GIntensity GetBlack () const

Interface Category:

API.

Purpose:

Gets the black component of this TCMYKColor.

Calling Context:

Call this function directly.

Parameters:

Return Value:

Returns the black component of the color.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::GetColorDifference

GCoordinate GetColorDifference (const TCMYKColor & aColor2) const

Interface Category:

API.

Purpose:

Calculates the color difference between this TCMYKColor and the specified one. The color difference is defined as the sqrt( (cyan1-cyan2)^2+(magenta1-magenta2)^2+(yellow1-yellow2)^2+ (black1-black2)^2 ).

Calling Context:

Call this function directly.

Parameters:

Return Value:

The value of the color difference between the two colors.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::SetComponents

void SetComponents (GIntensity aCyan, GIntensity aMagenta, GIntensity aYellow, GIntensity aBlack, GIntensity opacity =1.0)

Interface Category:

API.

Purpose:

Sets the components of this TCMYKColor to the specified values.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::SetMagenta

void SetMagenta (GIntensity aMagenta)

Interface Category:

API.

Purpose:

Sets the magenta component of this TCMYKColor.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::SetYellow

void SetYellow (GIntensity aYellow)

Interface Category:

API.

Purpose:

Sets the yellow component of this TCMYKColor.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::SetBlack

void SetBlack (GIntensity aBlack)

Interface Category:

API.

Purpose:

Sets the black component of this TCMYKColor.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::operatorTRGBColor

virtual operator TRGBColor () const

Interface Category:

API.

Purpose:

Casts this TCMYKColor to a TRGBColor.

Calling Context:

Call this operator directly.

Parameters:

Return Value:

Returns an TRGBColor that corresponds to this color.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::operatorTXYZColor

virtual operator TXYZColor () const

Interface Category:

API.

Purpose:

Casts this TCMYKColor to a TXYZColor.

Calling Context:

Call this operator directly.

Parameters:

Return Value:

Returns an XYZColor that corresponds to this color.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::operator=

  1. TCMYKColor & operator =(const TCMYKColor & aSource)
  2. TColor & operator =(const TColor & aSource)

Interface Category:

API.

Purpose:

  1. Assignment operator.
  2. Assignment operator that casts the specified operand to a TCMYKColor.

Calling Context:

  1. Called when an object is assigned to another compatible object.
  2. Called when an object is assigned to another compatible object.

Parameters:

Return Value:

A non-const reference to the left-hand side object.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::operator+

  1. TCMYKColor operator + (const TCMYKColor & aColor2) const
  2. TCMYKColor operator + (const float aScalar) const

Interface Category:

API.

Purpose:

  1. Adds the components of the two TCMYKColors together.
  2. Adds the specified scalar to each component of this TCMYKColor.

Calling Context:

  1. Call this operator directly.
  2. Call this operator directly.

Parameters:

Return Value:

  1. Returns a new color with the new components.
  2. Returns a new color with the new components.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

The values of the components are not clamped to the range 0.0 <= N <= 1.0.

Member Function: TCMYKColor::operator-

  1. TCMYKColor operator -(const TCMYKColor & aColor2) const
  2. TCMYKColor operator -(const float aScalar) const

Interface Category:

API.

Purpose:

  1. Subtracts the components of the specified color from this TCMYKColor.
  2. Subtracts the specified scalar from each component of this TCMYKColor.

Calling Context:

  1. Call this operator directly.
  2. Call this operator directly.

Parameters:

Return Value:

  1. Returns a new color with the new components.
  2. Returns a new color with the new components.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

The values of the components are not clamped to the range 0.0 <= N <= 1.0.

Member Function: TCMYKColor::operator*

  1. TCMYKColor operator * (const float aScalar) const
  2. TCMYKColor operator * (const TCMYKColor & aColor2) const

Interface Category:

API.

Purpose:

  1. Multiplies each component of this TCMYKColor by the specified scalar.
  2. Multiplies the components of this TCMYKColor by the components of the specified color.

Calling Context:

  1. Call this operator directly.
  2. Call this operator directly.

Parameters:

Return Value:

  1. Returns a new color with the new components.
  2. Returns a new color with the new components.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

The values of the components are not clamped to the range 0.0 <= N <= 1.0.

Member Function: TCMYKColor::operator/=

TCMYKColor & operator /= (const float aScalar)

Interface Category:

API.

Purpose:

Divides the components of this TCMYKColor by the specified scalar and assigns the new values to the respective components.

Calling Context:

Call this operator directly.

Parameters:

Return Value:

Returns this color with the new components.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

The color's opacity is set to 1.0.

Member Function: TCMYKColor::operator+=

  1. TCMYKColor & operator += (const float aScalar)
  2. TCMYKColor & operator += (const TCMYKColor & aColor2)

Interface Category:

API.

Purpose:

  1. Adds the specified scalar to the components of this TCMYKColor and assigns the new values to the respective components.
  2. Adds the specified colors to the components of this TCMYKColor and assigns the new values to the respective components.

Calling Context:

  1. Call this operator directly.
  2. Call this operator directly.

Parameters:

Return Value:

Throws no exceptions, passes all exceptions through.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

The color's opacity is set to 1.0.

Member Function: TCMYKColor::operator-=

  1. TCMYKColor & operator -=(const float aScalar)
  2. TCMYKColor & operator -=(const TCMYKColor & aColor2)

Interface Category:

API.

Purpose:

  1. Subtracts the specified scalar from the components of this TCMYKColor and assigns the new values to the respective components.
  2. Subtracts the specified scalar from the components of this TCMYKColor and assigns the new values to the respective components.

Calling Context:

  1. Call this operator directly.
  2. Call this operator directly.

Parameters:

Return Value:

Returns this color with the new components.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

The color's opacity is set to 1.0.

Member Function: TCMYKColor::operator*=

TCMYKColor & operator *= (const float aScalar)

Interface Category:

API.

Purpose:

Multiplies the components of this TCMYKColor by the specified scalar and assigns the new values to the respective components.

Calling Context:

Call this operator directly.

Parameters:

Return Value:

Returns this color with the new components.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

The color's opacity is set to 1.0.

Member Function: TCMYKColor::operator/

TCMYKColor operator / (const float aScalar) const

Interface Category:

API.

Purpose:

Divides each component of this TCMYKColor by the specified scalar.

Calling Context:

Call this operator directly.

Parameters:

Return Value:

Returns this color with the new components.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::FuzzyCompare

  1. bool FuzzyCompare (const TCMYKColor & aCMYKColor, float acceptableErrorPerComponent =0.0001) const
  2. bool FuzzyCompare (const TCMYKColor & aCMYKColor, float errOpacity, float errCyan, float errMagenta, float errYellow, float errBlack) const

Interface Category:

API.

Purpose:

  1. Compares this TCMYKColor and the specified color with reference to the specified tolerance. It takes the absolute difference between the components of the color and compares them to a known value.
  2. Compares this TCMYKColor and the specified color to a given accuracy on a component by component level.

Calling Context:

  1. Call this function directly.
  2. Call this function directly.

Parameters:

Return Value:

  1. Returns true if the two colors are equal with reference to the specified tolerance.
  2. Returns true if the two colors are equal with reference to the specified tolerance.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::LinearInterpolate

void LinearInterpolate (const float aWeight, const TCMYKColor & aColor2)

Interface Category:

API.

Purpose:

Makes a weighted linear interpolation of each component of this TCMYColor. The interpolation is returned in this color. The interpolation that is done for each component is (using cyan as an example) given by cyan1 =cyan1 + (cyan2 -cyan1) * Weight.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

The color's opacity is set to 1.0.

Member Function: TCMYKColor::AddAndPin

void AddAndPin (const TCMYKColor & aColor2)

Interface Category:

API.

Purpose:

Adds the specified color to this TCMYKColor and then clamps the resulting values of the components.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

The color's opacity is set to 1.0.

Member Function: TCMYKColor::SubtractAndPin

void SubtractAndPin (const TCMYKColor & aColor2)

Interface Category:

API.

Purpose:

Subtracts the specified color from this TCMYKColor and then clamps the resulting values of the components.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

The color's opacity is set to 1.0.

Member Function: TCMYKColor::Maximum

void Maximum (const TCMYKColor & aColor2)

Interface Category:

API.

Purpose:

Determines the maximum of individual components of this TCMYKColor and the specified color. It sets the components of this color to the resulting maximum values.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

The color's opacity is set to 1.0.

Member Function: TCMYKColor::Minimum

void Minimum (const TCMYKColor & aColor2)

Interface Category:

API.

Purpose:

Determines the minimum of individual components of this TCMYKColor and the specified color. It sets the components of this color to the resulting minimum values.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

The color's opacity is set to 1.0.

Member Function: TCMYKColor::Blend

void Blend (const TCMYKColor & aColor2)

Interface Category:

API.

Purpose:

Averages the individual components of the two colors and returns them in this TCMYKColor.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

The color's opacity is set to 1.0.

Member Function: TCMYKColor::Invert

void Invert ()

Interface Category:

API.

Purpose:

Inverts this TCMYKColor.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

The color's opacity is set to 1.0.

Member Function: TCMYKColor::Clamp

void Clamp ()

Interface Category:

API.

Purpose:

Clamps the components of this TCMYKColor between 0.0 <= N <= 1.0. If a value is less than 0.0, it is set to 0.0, and if it is greater than 1.0, it is set to 1.0.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

The color's opacity is set to 1.0.

Member Function: TCMYKColor::Scale

void Scale ()

Interface Category:

API.

Purpose:

Scales this TCMYKColor to 1.0. If all of the color's components are between 0.0 <= N <= 1.0, the color is untouched. If there are components with values greater than 1.0, then the largest component is used to renormalize the color. If any of the color's components are less than 0.0, they set to 0.0.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

The color's opacity is set to 1.0.

Member Function: TCMYKColor::TemporaryTypeID

virtual TemporaryColorClassID TemporaryTypeID () const

Interface Category:

API.

Purpose:

Returns TColor::kCMYKcolor.

Calling Context:

Call this function directly.

Parameters:

Return Value:

Returns TColor::kCMYKcolor.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::operator<<=

virtual TStream & operator <<= (TStream &)

Interface Category:

API.

Purpose:

Stream-in operator.

Calling Context:

Called to stream in data.

Parameters:

Return Value:

Returns a reference to the stream the object streams itself in from.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::operator>>=

virtual TStream & operator >>=(TStream &) const

Interface Category:

API.

Purpose:

Stream-out operator.

Calling Context:

Called to stream out data.

Parameters:

Return Value:

Returns a reference to the stream the object streams itself out to.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::~TCMYKColor

virtual ~ TCMYKColor ()

Interface Category:

API.

Purpose:

Destructor.

Calling Context:

Called to destroy an object.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::ClampOpacity

void ClampOpacity ()

Interface Category:

API.

Purpose:

Pins the opacity of this TCMYKColor to the range 0.0 to 1.0.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::SetOpacity

void SetOpacity (GIntensity opacity =1.0)

Interface Category:

API.

Purpose:

Sets the opacity of this TCMYKColor to the specified value.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::GetClampedOpacity

GIntensity GetClampedOpacity () const

Interface Category:

API.

Purpose:

Returns the opacity of this TCMYKColor and pins the value to the range 0.0 to 1.0.

Calling Context:

Call this function directly.

Parameters:

Return Value:

The clamped opacity.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::GetOpacity

GIntensity GetOpacity () const

Interface Category:

API.

Purpose:

Returns the opacity of this TCMYKColor.

Calling Context:

Call this function directly.

Parameters:

Return Value:

The opacity that can be outside the range 0.0 to 1.0.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TCMYKColor::SetCyan

void SetCyan (GIntensity aCyan)

Interface Category:

API.

Purpose:

Sets the cyan component of this TCMYKColor.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.
Click the icon to mail questions or corrections about this material to Taligent personnel.
Copyright©1995 Taligent,Inc. All rights reserved.