00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef __HOM_Ramp_h__
00017 #define __HOM_Ramp_h__
00018
00019 #include "HOM_API.h"
00020 #include "HOM_Defines.h"
00021 #include "HOM_Errors.h"
00022 #include "HOM_EnumModules.h"
00023 #include "HOM_Module.h"
00024 #include <UT/UT_Ramp.h>
00025
00026
00027 SWIGOUT(%rename(Ramp) HOM_Ramp;)
00028
00029 class HOM_API HOM_Ramp
00030 {
00031 public:
00032 HOM_Ramp() throw(HOM_Error)
00033 : myIsColor(false)
00034 { HOM_CONSTRUCT_OBJECT(this) }
00035
00036 HOM_Ramp(std::vector<HOM_EnumValue *> basis,
00037 const std::vector<double> &keys,
00038 const std::vector<double> &values)
00039 throw(HOM_InvalidSize, HOM_TypeError, HOM_Error);
00040
00041 HOM_Ramp(std::vector<HOM_EnumValue *> basis,
00042 const std::vector<double> &keys,
00043 const std::vector<std::vector<double> > &values)
00044 throw(HOM_InvalidSize, HOM_TypeError, HOM_Error);
00045
00046 ~HOM_Ramp()
00047 { HOM_DESTRUCT_OBJECT(this) }
00048
00049
00050 SWIGOUT(%ignore operator=;)
00051 HOM_Ramp &operator=(const HOM_Ramp& ramp)
00052 {
00053 if (this != &ramp)
00054 myRamp = ramp.myRamp;
00055 return *this;
00056 }
00057
00058 std::string __repr__();
00059
00060 bool isColor()
00061 { return myIsColor; }
00062
00063 HOM_EnumValue &colorType()
00064 throw(HOM_OperationFailed, HOM_Error);
00065 void setColorType(HOM_EnumValue &enum_value)
00066 throw(HOM_OperationFailed, HOM_TypeError, HOM_Error);
00067
00068
00069 SWIGPYTHONOUT(%feature("autodoc",
00070 "basis(self) -> tuple of hou.rampBasis enum values") basis();)
00071 std::vector<HOM_EnumValue *> basis()
00072 throw(HOM_ObjectWasDeleted, HOM_Error);
00073
00074 SWIGPYTHONOUT(%feature("autodoc",
00075 "keys(self) -> tuple of floats") keys(); )
00076 std::vector<float> keys()
00077 throw(HOM_ObjectWasDeleted, HOM_Error);
00078
00079
00080 SWIGOUT(%ignore getUTRamp;)
00081 UT_Ramp &getUTRamp()
00082 { return myRamp; }
00083
00084 SWIGOUT(%ignore setIsColor;)
00085 void setIsColor(bool is_color)
00086 { myIsColor = is_color; }
00087
00088 SWIGOUT(%ignore rampLookup;)
00089 boost::any rampLookup(float pos) throw(HOM_OperationFailed);
00090
00091 SWIGOUT(%ignore rampValues;)
00092 boost::any rampValues() throw(HOM_ObjectWasDeleted, HOM_Error);
00093
00094
00095 SWIGOUT(%ignore splineBasisForEnumValue;)
00096 static UT_SPLINE_BASIS splineBasisForEnumValue(
00097 HOM_EnumValue &enum_value) throw(HOM_TypeError);
00098 SWIGOUT(%ignore splineBasisToEnumValue;)
00099 static HOM_EnumValue & splineBasisToEnumValue(UT_SPLINE_BASIS basis);
00100
00101 #ifdef SWIG
00102 %extend
00103 {
00104 SWIGPYTHONOUT(%feature("autodoc",
00105 "lookup(self, pos) -> float or tuple") lookup(float pos);)
00106 InterpreterObject lookup(float pos) throw(HOM_OperationFailed)
00107 {
00108 return HOMboostAnyToInterpreterObject(self->rampLookup(pos));
00109 }
00110
00111 SWIGPYTHONOUT(%feature("autodoc",
00112 "values(self) -> tuple of float or tuple values") values;)
00113 InterpreterObject values() throw(HOM_OperationFailed)
00114 {
00115 return HOMboostAnyToInterpreterObject(self->rampValues());
00116 }
00117 }
00118 #endif
00119
00120 private:
00121 UT_Ramp myRamp;
00122 bool myIsColor;
00123 };
00124
00125 #endif