00001 #ifndef COIN_SBCOLOR_H
00002 #define COIN_SBCOLOR_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #include <Inventor/system/inttypes.h>
00028 #include <Inventor/SbVec3f.h>
00029
00030 class COIN_DLL_API SbColor : public SbVec3f {
00031 public:
00032 SbColor(void);
00033 SbColor(const SbVec3f& v);
00034 SbColor(const float* const rgb);
00035 SbColor(const float r, const float g, const float b);
00036
00037 SbColor & setHSVValue(float h, float s, float v);
00038 SbColor & setHSVValue(const float hsv[3]);
00039 void getHSVValue(float &h, float &s, float &v) const;
00040 void getHSVValue(float hsv[3]) const;
00041 SbColor & setPackedValue(const uint32_t rgba, float& transparency);
00042 uint32_t getPackedValue(const float transparency = 0.0f) const;
00043
00044 private:
00045 float red(void) const { return (*this)[0]; }
00046 float green(void) const { return (*this)[1]; }
00047 float blue(void) const { return (*this)[2]; }
00048 uint32_t convertToUInt(const float val) { return (uint32_t)(val*255.0f);}
00049 };
00050
00051 #endif // !COIN_SBCOLOR_H