Horus Doc || C++ Reference || Class Overview   Pixels   Images   Detector   Geometry   Registry || Doxygen's quick Index  

HxColor Class Reference

Class definition color semantics. More...

#include <HxColor.h>

List of all members.

Public Methods

 HxColor ()
 Default constructor. More...

 HxColor (HxVec3Double color, HxColorModel space=RGB)
 Construction from given color in color space. More...

 HxColor (const HxColor &rhs)
 Copy constructor. More...

HxColor & operator= (const HxColor &rhs)
 Assignment operator. More...

const HxVec3Doublevalue () const
 Return the value. More...

HxColor convert (const HxColorModel space) const
 General color space convertor. More...

HxColor toRGB () const
 to RGB. More...

HxColor toCMY () const
 to CMY. More...

HxColor toXYZ () const
 to XYZ. More...

HxColor toLab () const
 to Lab. More...

HxColor toLuv () const
 to Luv. More...

HxColor toOOO () const
 to OOO. More...

HxColor toHSI () const
 to HSI. More...

int operator== (const HxColor &v) const
 Equal. More...

int operator!= (const HxColor &v) const
 Not equal. More...

STD_OSTREAM & put (STD_OSTREAM &os) const
 Print color on stream. More...

HxString toString () const
 Color as a string. More...


Detailed Description

Class definition color semantics.


Constructor & Destructor Documentation

HxColor::HxColor   [inline]
 

Default constructor.

00102     : _value(0,0,0), _space(RGB)
00103 { 
00104 }

HxColor::HxColor HxVec3Double    color,
HxColorModel    space = RGB
[inline]
 

Construction from given color in color space.

00108     : _value(color), _space(space)
00109 { 
00110 }

HxColor::HxColor const HxColor &    rhs [inline]
 

Copy constructor.

00114     : _value(rhs._value), _space(rhs._space)
00115 {
00116 }


Member Function Documentation

HxColor & HxColor::operator= const HxColor &    rhs [inline]
 

Assignment operator.

00120 {
00121     _value = rhs._value;
00122     _space = rhs._space;
00123     return *this;
00124 }

const HxVec3Double & HxColor::value   const [inline]
 

Return the value.

00128 { 
00129     return _value; 
00130 }

HxColor HxColor::convert const HxColorModel    space const [inline]
 

General color space convertor.

See also : Color operations on pixel values.

00134 {
00135     switch (space) {
00136     case RGB: return toRGB();
00137     case CMY: return toCMY();
00138     case XYZ: return toXYZ();
00139     case Lab: return toLab();
00140     case Luv: return toLuv();
00141     case OOO: return toOOO();
00142     case HSI: return toHSI();
00143     }
00144     return HxColor();
00145 }

HxColor HxColor::toRGB   const
 

to RGB.

00050 { 
00051     switch (_space) {
00052     case RGB:
00053         return *this;
00054     case CMY:
00055         return HxColor(HxColCMY2RGB(_value), RGB);
00056     case XYZ:
00057         return HxColor(HxColXYZ2RGB(_value), RGB);
00058     case Lab: {
00059         HxVec3Double xyz = HxColLab2XYZ(_value);
00060         return HxColor(HxColXYZ2RGB(xyz), RGB);
00061       }
00062     case Luv: {
00063         HxVec3Double xyz = HxColLuv2XYZ(_value);
00064         return HxColor(HxColXYZ2RGB(xyz), RGB);
00065       }
00066     case OOO:
00067         return HxColor(HxColOOO2RGB(_value), RGB);
00068     case HSI:
00069         return HxColor(HxColHSI2RGB(_value), RGB);
00070     }
00071 
00072     return HxColor();
00073 }

HxColor HxColor::toCMY   const
 

to CMY.

00078 { 
00079     switch (_space) {
00080     case RGB:
00081         return HxColor(HxColRGB2CMY(_value), CMY);
00082     case CMY:
00083         return *this;
00084     case XYZ:
00085         return HxColor(HxColXYZ2CMY(_value), CMY);
00086     case Lab: {
00087         HxVec3Double xyz = HxColLab2XYZ(_value);
00088         return HxColor(HxColXYZ2CMY(xyz), CMY);
00089       }
00090     case Luv: {
00091         HxVec3Double xyz = HxColLuv2XYZ(_value);
00092         return HxColor(HxColXYZ2CMY(xyz), CMY);
00093       }
00094     case OOO: {
00095         HxVec3Double rgb = HxColOOO2RGB(_value);
00096         return HxColor(HxColRGB2CMY(rgb), CMY);
00097       }
00098     case HSI: {
00099         HxVec3Double rgb = HxColHSI2RGB(_value);
00100         return HxColor(HxColRGB2CMY(rgb), CMY);
00101       }
00102     }
00103 
00104     return HxColor();
00105 }

HxColor HxColor::toXYZ   const
 

to XYZ.

00109 { 
00110     switch (_space) {
00111     case RGB:
00112         return HxColor(HxColRGB2XYZ(_value), XYZ);
00113     case CMY:
00114         return HxColor(HxColCMY2XYZ(_value), XYZ);
00115     case XYZ:
00116         return *this;
00117     case Lab:
00118         return HxColor(HxColLab2XYZ(_value), XYZ);
00119     case Luv:
00120         return HxColor(HxColLuv2XYZ(_value), XYZ);
00121     case OOO:
00122         return HxColor(HxColOOO2XYZ(_value), XYZ);
00123     case HSI: {
00124         HxVec3Double rgb = HxColHSI2RGB(_value);
00125         return HxColor(HxColRGB2XYZ(rgb), XYZ);
00126       }
00127     }
00128 
00129     return HxColor();
00130 }

HxColor HxColor::toLab   const
 

to Lab.

00134 { 
00135     switch (_space) {
00136     case RGB: {
00137         HxVec3Double xyz = HxColRGB2XYZ(_value);
00138         return HxColor(HxColXYZ2Lab(xyz), Lab);
00139     }
00140     case CMY: {
00141         HxVec3Double xyz = HxColCMY2XYZ(_value);
00142         return HxColor(HxColXYZ2Lab(xyz), Lab);
00143     }
00144     case XYZ:
00145         return HxColor(HxColXYZ2Lab(_value), Lab);
00146     case Lab:
00147         return *this;
00148     case Luv: {
00149         HxVec3Double xyz = HxColLuv2XYZ(_value);
00150         return HxColor(HxColXYZ2Lab(xyz), Lab);
00151     }
00152     case OOO: {
00153         HxVec3Double xyz = HxColOOO2XYZ(_value);
00154         return HxColor(HxColXYZ2Lab(xyz), Lab);
00155     }
00156     case HSI: {
00157         HxVec3Double rgb = HxColHSI2RGB(_value);
00158         HxVec3Double xyz = HxColRGB2XYZ(rgb);
00159         return HxColor(HxColXYZ2Lab(xyz), Lab);
00160       }
00161     }
00162 
00163     return HxColor();
00164 }

HxColor HxColor::toLuv   const
 

to Luv.

00169 { 
00170     switch (_space) {
00171     case RGB: {
00172         HxVec3Double xyz = HxColRGB2XYZ(_value);
00173         return HxColor(HxColXYZ2Luv(xyz), Luv);
00174     }
00175     case CMY: {
00176         HxVec3Double xyz = HxColCMY2XYZ(_value);
00177         return HxColor(HxColXYZ2Luv(xyz), Luv);
00178     }
00179     case XYZ:
00180         return HxColor(HxColXYZ2Luv(_value), Luv);
00181     case Lab: {
00182         HxVec3Double xyz = HxColLab2XYZ(_value);
00183         return HxColor(HxColXYZ2Luv(xyz), Luv);
00184     }
00185     case Luv:
00186         return *this;
00187     case OOO: {
00188         HxVec3Double xyz = HxColOOO2XYZ(_value);
00189         return HxColor(HxColXYZ2Luv(xyz), Luv);
00190     }
00191     case HSI: {
00192         HxVec3Double rgb = HxColHSI2RGB(_value);
00193         HxVec3Double xyz = HxColRGB2XYZ(rgb);
00194         return HxColor(HxColXYZ2Luv(xyz), Luv);
00195       }
00196     }
00197 
00198     return HxColor();
00199 }

HxColor HxColor::toOOO   const
 

to OOO.

00203 { 
00204     switch (_space) {
00205     case RGB:
00206         return HxColor(HxColRGB2OOO(_value), OOO);
00207     case CMY: {
00208         HxVec3Double rgb = HxColCMY2RGB(_value);
00209         return HxColor(HxColRGB2OOO(rgb), OOO);
00210       }
00211     case XYZ:
00212         return HxColor(HxColXYZ2OOO(_value), OOO);
00213     case Lab: {
00214         HxVec3Double xyz = HxColLab2XYZ(_value);
00215         return HxColor(HxColXYZ2OOO(_value), OOO);
00216     }
00217     case Luv: {
00218         HxVec3Double xyz = HxColLuv2XYZ(_value);
00219         return HxColor(HxColXYZ2OOO(_value), OOO);
00220     }
00221     case OOO:
00222         return *this;
00223     case HSI: {
00224         HxVec3Double rgb = HxColHSI2RGB(_value);
00225         return HxColor(HxColRGB2OOO(rgb), OOO);
00226       }
00227     }
00228 
00229     return HxColor();
00230 }

HxColor HxColor::toHSI   const
 

to HSI.

00234 { 
00235     switch (_space) {
00236     case RGB:
00237         return HxColor(HxColRGB2HSI(_value), HSI);
00238     case CMY: {
00239         HxVec3Double rgb = HxColCMY2RGB(_value);
00240         return HxColor(HxColRGB2HSI(rgb), HSI);
00241       }
00242     case XYZ: {
00243         HxVec3Double rgb = HxColXYZ2RGB(_value);
00244         return HxColor(HxColRGB2HSI(rgb), HSI);
00245       }
00246     case Lab: {
00247         HxVec3Double xyz = HxColLab2XYZ(_value);
00248         HxVec3Double rgb = HxColXYZ2RGB(xyz);
00249         return HxColor(HxColRGB2HSI(rgb), HSI);
00250       }
00251     case Luv: {
00252         HxVec3Double xyz = HxColLuv2XYZ(_value);
00253         HxVec3Double rgb = HxColXYZ2RGB(xyz);
00254         return HxColor(HxColRGB2HSI(rgb), HSI);
00255       }
00256     case OOO: {
00257         HxVec3Double rgb = HxColOOO2RGB(_value);
00258         return HxColor(HxColRGB2HSI(rgb), HSI);
00259       }
00260     case HSI:
00261         return *this;
00262     }
00263 
00264     return HxColor();
00265 }

int HxColor::operator== const HxColor &    c const [inline]
 

Equal.

00149 {
00150     return (_space == c._space) && (_value == c._value);
00151 }

int HxColor::operator!= const HxColor &    c const [inline]
 

Not equal.

00155 {
00156     return !(*this == c);
00157 }

STD_OSTREAM & HxColor::put STD_OSTREAM &    os const [inline]
 

Print color on stream.

For global operator<<

00089 {
00090     return os << toString();
00091 }

HxString HxColor::toString   const
 

Color as a string.

00017 { 
00018     HxString colspace;
00019 
00020     switch (_space) {
00021     case RGB:
00022         colspace = "RGB";
00023         break;
00024     case CMY:
00025         colspace = "CMY";
00026         break;
00027     case XYZ:
00028         colspace = "XYZ";
00029         break;
00030     case Lab:
00031         colspace = "Lab";
00032         break;
00033     case Luv:
00034         colspace = "Luv";
00035         break;
00036     case OOO:
00037         colspace = "OOO";
00038         break;
00039     case HSI:
00040         colspace = "HSI";
00041         break;
00042     default:
00043         colspace = "(Unknown)";
00044     }
00045     return colspace + _value.toString();
00046 }


The documentation for this class was generated from the following files:
Generated on Mon Jan 27 15:48:58 2003 for C++Reference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001