00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef __HOM_Color_h__
00017 #define __HOM_Color_h__
00018
00019 #include "HOM_API.h"
00020 #include "HOM_Defines.h"
00021 #include "HOM_Errors.h"
00022 #include "HOM_Module.h"
00023 #include <UT/UT_Color.h>
00024 #include <vector>
00025 #include <stdexcept>
00026
00027 SWIGOUT(%rename(Color) HOM_Color;)
00028
00029 class HOM_API HOM_Color
00030 {
00031 public:
00032 HOM_Color() throw(HOM_Error)
00033 : myColor(UT_RGB, 0.0f, 0.0f, 0.0f)
00034 { HOM_CONSTRUCT_OBJECT(this) }
00035
00036 HOM_Color(const std::vector<float> &rgb_tuple) throw(HOM_Error);
00037
00038 SWIGOUT(%ignore HOM_Color(const UT_Color&);)
00039 HOM_Color(const UT_Color &color) throw(HOM_Error)
00040 : myColor(color)
00041 { HOM_CONSTRUCT_OBJECT(this) }
00042
00043 ~HOM_Color()
00044 { HOM_DESTRUCT_OBJECT(this) }
00045
00046 bool operator==(HOM_Color &color)
00047 { return myColor == color.myColor; }
00048
00049 bool operator!=(HOM_Color &color)
00050 { return !(myColor == color.myColor); }
00051
00052 int __hash__();
00053 std::string __repr__();
00054
00055 SWIGOUT(%ignore operator=;)
00056 HOM_Color &operator=(const HOM_Color& color)
00057 {
00058 myColor = color.myColor;
00059 return *this;
00060 }
00061
00062 SWIGPYTHONOUT(%feature("autodoc",
00063 "rgb(self) -> (float, float, float)") rgb;)
00064 std::vector<float> rgb();
00065
00066 SWIGPYTHONOUT(%feature("autodoc",
00067 "hsv(self) -> (float, float, float)") hsv;)
00068 std::vector<float> hsv();
00069
00070 SWIGPYTHONOUT(%feature("autodoc",
00071 "hsl(self) -> (float, float, float)") hsl;)
00072 std::vector<float> hsl();
00073
00074 SWIGPYTHONOUT(%feature("autodoc",
00075 "xyz(self) -> (float, float, float)") xyz;)
00076 std::vector<float> xyz();
00077
00078 SWIGPYTHONOUT(%feature("autodoc",
00079 "lab(self) -> (float, float, float)") lab;)
00080 std::vector<float> lab();
00081
00082 void setRGB(const std::vector<float> &tuple) throw(HOM_InvalidSize);
00083 void setHSV(const std::vector<float> &tuple) throw(HOM_InvalidSize);
00084 void setHSL(const std::vector<float> &tuple) throw(HOM_InvalidSize);
00085 void setXYZ(const std::vector<float> &tuple) throw(HOM_InvalidSize);
00086 void setLAB(const std::vector<float> &tuple) throw(HOM_InvalidSize);
00087
00088 SWIGOUT(%ignore colorTypeForEnumValue;)
00089 static UT_ColorType colorTypeForEnumValue(HOM_EnumValue &enum_value)
00090 throw(HOM_TypeError);
00091 SWIGOUT(%ignore colorTypeToEnumValue;)
00092 static HOM_EnumValue & colorTypeToEnumValue(UT_ColorType basis);
00093
00094 SWIGOUT(%ignore myColor;)
00095 UT_Color myColor;
00096 };
00097
00098 #endif