00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef __HOM_DopRecord_h__
00017 #define __HOM_DopRecord_h__
00018
00019 #include "HOM_API.h"
00020 #include "HOM_Defines.h"
00021 #include "HOM_Module.h"
00022 #include "HOM_EnumValue.h"
00023 #include "HOM_Errors.h"
00024 #include <UT/UT_Options.h>
00025 #include <string>
00026 #include <vector>
00027
00028 class HOM_DopData;
00029 class HOM_Vector2;
00030 class HOM_Vector3;
00031 class HOM_Vector4;
00032 class HOM_Quaternion;
00033 class HOM_Matrix3;
00034 class HOM_Matrix4;
00035
00036 SWIGOUT(%rename(DopRecord) HOM_DopRecord;)
00037
00038 class HOM_API HOM_DopRecord
00039 {
00040 public:
00041 HOM_DopRecord()
00042 { HOM_CONSTRUCT_OBJECT(this) }
00043 HOM_DopRecord(const HOM_DopRecord &record)
00044 { HOM_CONSTRUCT_OBJECT(this) }
00045 virtual ~HOM_DopRecord()
00046 { HOM_DESTRUCT_OBJECT(this) }
00047
00048
00049
00050 virtual bool operator==(HOM_DopRecord *record)
00051 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00052 virtual bool operator!=(HOM_DopRecord *record)
00053 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00054
00055 virtual int __hash__() throw(HOM_Error) = 0;
00056 virtual std::string __repr__()
00057 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00058
00059 virtual std::string recordType()
00060 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00061 virtual int recordIndex()
00062 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00063
00064
00065 SWIGPYTHONOUT(%feature("autodoc",
00066 "fieldNames(self) -> tuple of strings") fieldNames;)
00067 virtual std::vector<std::string> fieldNames()
00068 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00069
00070
00071 SWIGPYTHONOUT(%feature("autodoc",
00072 "fieldType(self, field_name) -> hou.fieldType enum value") fieldType;)
00073 virtual HOM_EnumValue &fieldType(const char *field_name)
00074 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00075
00076
00077
00078
00079
00080 SWIGOUT(%ignore fieldAsRaw;)
00081 virtual UT_OptionEntry *fieldAsRaw(const char *field_name)
00082 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00083
00084 #ifdef SWIG
00085 %extend
00086 {
00087 SWIGPYTHONOUT(%feature("autodoc",
00088 "field(self) -> "
00089 "int, bool, float, string, Vector2, Vector3, Vector4, "
00090 "Quaternion, Matrix3, or Matrix4") field;)
00091 InterpreterObject field(const char *field_name)
00092 throw(HOM_ObjectWasDeleted, HOM_Error)
00093 {
00094 boost::shared_ptr<UT_OptionEntry> raw_value(
00095 self->fieldAsRaw(field_name));
00096 return raw_value.get()
00097 ? HOMoptionEntryToInterpreterObject(*raw_value) : Py_None;
00098 }
00099 }
00100 #endif
00101
00102
00103
00104 virtual void setFieldBool(const char *field_name, bool value)
00105 throw(HOM_PermissionError, HOM_ObjectWasDeleted, HOM_Error) = 0;
00106 virtual void setField(const char *field_name, int value)
00107 throw(HOM_PermissionError, HOM_ObjectWasDeleted, HOM_Error) = 0;
00108 virtual void setField(const char *field_name, float value)
00109 throw(HOM_PermissionError, HOM_ObjectWasDeleted, HOM_Error) = 0;
00110 virtual void setField(const char *field_name, const char *value)
00111 throw(HOM_TypeError, HOM_PermissionError, HOM_ObjectWasDeleted,
00112 HOM_Error) = 0;
00113 virtual void setField(const char *field_name, HOM_Vector2 &value)
00114 throw(HOM_PermissionError, HOM_ObjectWasDeleted, HOM_Error) = 0;
00115 virtual void setField(const char *field_name, HOM_Vector3 &value)
00116 throw(HOM_PermissionError, HOM_ObjectWasDeleted, HOM_Error) = 0;
00117 virtual void setField(const char *field_name, HOM_Vector4 &value)
00118 throw(HOM_PermissionError, HOM_ObjectWasDeleted, HOM_Error) = 0;
00119 virtual void setField(const char *field_name, HOM_Quaternion &value)
00120 throw(HOM_PermissionError, HOM_ObjectWasDeleted, HOM_Error) = 0;
00121 virtual void setField(const char *field_name, HOM_Matrix3 &value)
00122 throw(HOM_PermissionError, HOM_ObjectWasDeleted, HOM_Error) = 0;
00123 virtual void setField(const char *field_name, HOM_Matrix4 &value)
00124 throw(HOM_PermissionError, HOM_ObjectWasDeleted, HOM_Error) = 0;
00125 };
00126
00127 #endif
00128