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