00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef __HOM_HDADefinition_h__
00017 #define __HOM_HDADefinition_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_Options.h>
00024 #include <string>
00025 #include <vector>
00026 class HOM_NodeType;
00027 class HOM_HDASection;
00028 class HOM_NodeTypeCategory;
00029 class HOM_HDAOptions;
00030 class HOM_ParmTemplate;
00031
00032 SWIGOUT(%rename(HDADefinition) HOM_HDADefinition;)
00033
00034 class HOM_API HOM_HDADefinition
00035 {
00036 public:
00037 HOM_HDADefinition()
00038 { HOM_CONSTRUCT_OBJECT(this) }
00039 HOM_HDADefinition(const HOM_HDADefinition &)
00040 { HOM_CONSTRUCT_OBJECT(this) }
00041 virtual ~HOM_HDADefinition()
00042 { HOM_DESTRUCT_OBJECT(this) }
00043
00044 virtual bool operator==(HOM_HDADefinition &hda_definition)
00045 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00046 virtual bool operator!=(HOM_HDADefinition &hda_definition)
00047 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00048
00049 virtual int __hash__() throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00050 virtual std::string __repr__() throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00051
00052 SWIGOUT(%newobject nodeType;)
00053 virtual HOM_NodeType *nodeType()
00054 throw(HOM_OperationFailed, HOM_ObjectWasDeleted, HOM_Error) = 0;
00055
00056 virtual HOM_NodeTypeCategory &nodeTypeCategory()
00057 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00058 virtual std::string nodeTypeName()
00059 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00060
00061 virtual std::string libraryFilePath()
00062 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00063
00064 virtual std::string embeddedHelp()
00065 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00066
00067
00068 virtual bool isInstalled() throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00069 bool installed() throw(HOM_ObjectWasDeleted, HOM_Error)
00070 { return isInstalled(); }
00071
00072
00073 virtual bool isCurrent() throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00074 bool current() throw(HOM_ObjectWasDeleted, HOM_Error)
00075 { return isCurrent(); }
00076
00077
00078 virtual bool isPreferred() throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00079 bool preferred() throw(HOM_ObjectWasDeleted, HOM_Error)
00080 { return isPreferred(); }
00081
00082
00083 virtual void setIsPreferred(bool preferred)
00084 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00085 void setPreferred(bool preferred)
00086 throw(HOM_ObjectWasDeleted, HOM_Error)
00087 { setIsPreferred(preferred); }
00088
00089 SWIGPYTHONOUT(%feature("autodoc",
00090 "sections(self) -> dict of strings to HDASections") sections;)
00091 virtual std::map<std::string, HOM_ElemPtr<HOM_HDASection> > sections()
00092 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00093
00094 SWIGOUT(%newobject addSection;)
00095 virtual HOM_HDASection *addSection(const char *name,
00096 const std::string &contents = "")
00097 throw(HOM_OperationFailed, HOM_ObjectWasDeleted, HOM_PermissionError,
00098 HOM_Error) = 0;
00099 virtual void removeSection(const char *name)
00100 throw(HOM_OperationFailed, HOM_ObjectWasDeleted, HOM_PermissionError,
00101 HOM_Error) = 0;
00102
00103 virtual std::string icon()
00104 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00105 virtual void setIcon(const char *icon)
00106 throw(HOM_ObjectWasDeleted, HOM_OperationFailed, HOM_PermissionError,
00107 HOM_Error) = 0;
00108 virtual int minNumInputs()
00109 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00110 virtual void setMinNumInputs(int min_num_inputs)
00111 throw(HOM_ObjectWasDeleted, HOM_OperationFailed, HOM_PermissionError,
00112 HOM_Error) = 0;
00113 virtual int maxNumInputs()
00114 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00115 virtual void setMaxNumInputs(int max_num_inputs)
00116 throw(HOM_ObjectWasDeleted, HOM_OperationFailed, HOM_PermissionError,
00117 HOM_Error) = 0;
00118
00119 virtual std::string extraInfo()
00120 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00121 virtual void setExtraInfo(const char *extra_info)
00122 throw(HOM_ObjectWasDeleted, HOM_OperationFailed, HOM_PermissionError,
00123 HOM_Error) = 0;
00124 virtual bool hideDefaultParameters()
00125 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00126 virtual std::string representativeNodePath()
00127 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00128
00129 virtual std::string comment()
00130 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00131 virtual void setComment(const char *comment)
00132 throw(HOM_TypeError, HOM_ObjectWasDeleted, HOM_PermissionError,
00133 HOM_Error) = 0;
00134
00135 virtual std::string version()
00136 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00137 virtual void setVersion(const char *version)
00138 throw(HOM_TypeError, HOM_ObjectWasDeleted, HOM_PermissionError,
00139 HOM_Error) = 0;
00140
00141 virtual int modificationTime()
00142 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00143 virtual void setModificationTime(int time=-1)
00144 throw(HOM_OperationFailed, HOM_PermissionError, HOM_ObjectWasDeleted,
00145 HOM_Error) = 0;
00146
00147 SWIGOUT(%newobject options;)
00148 virtual HOM_HDAOptions *options()
00149 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00150 virtual void setOptions(HOM_HDAOptions &options)
00151 throw(HOM_ObjectWasDeleted, HOM_OperationFailed, HOM_PermissionError,
00152 HOM_Error) = 0;
00153
00154 virtual void updateFromNode(HOM_Node &node)
00155 throw(HOM_ObjectWasDeleted, HOM_OperationFailed, HOM_PermissionError,
00156 HOM_Error) = 0;
00157
00158 virtual void save(
00159 const std::string &file_name,
00160 HOM_Node *template_node = NULL,
00161 HOM_HDAOptions *options = NULL)
00162 throw(HOM_ObjectWasDeleted, HOM_OperationFailed, HOM_PermissionError,
00163 HOM_Error) = 0;
00164
00165 virtual void copyToHDAFile(
00166 const std::string &file_name,
00167 const char *new_name = NULL,
00168 const char *new_menu_name = NULL)
00169 throw(HOM_ObjectWasDeleted, HOM_OperationFailed, HOM_Error) = 0;
00170
00171 virtual void destroy()
00172 throw(HOM_OperationFailed, HOM_ObjectWasDeleted, HOM_Error) = 0;
00173
00174 SWIGPYTHONOUT(%feature("autodoc",
00175 "addParmTuple(self, parm_template, in_folder=(),"
00176 " create_missing_folders=False)") addParmTuple;)
00177 SWIGOUT(%kwargs addParmTuple;)
00178 virtual void addParmTuple(
00179 HOM_ParmTemplate &parm_template,
00180 const std::vector<std::string> &in_folder =
00181 std::vector<std::string>(),
00182 bool create_missing_folders = false)
00183 throw(HOM_OperationFailed, HOM_ObjectWasDeleted, HOM_PermissionError,
00184 HOM_Error) = 0;
00185
00186 virtual void removeParmTuple(const char *name)
00187 throw(HOM_TypeError, HOM_OperationFailed, HOM_ObjectWasDeleted,
00188 HOM_PermissionError, HOM_Error) = 0;
00189
00190 SWIGPYTHONOUT(%feature("autodoc",
00191 "addParmFolder(self, folder_name, in_folder=(), parm_name=None,"
00192 " create_missing_folders=False)") addParmFolder;)
00193 virtual void addParmFolder(
00194 const char *folder_name,
00195 const std::vector<std::string> &in_folder =
00196 std::vector<std::string>(),
00197 const char *parm_name = NULL,
00198 bool create_missing_folders = false)
00199 throw(HOM_TypeError, HOM_OperationFailed, HOM_ObjectWasDeleted,
00200 HOM_PermissionError, HOM_Error) = 0;
00201
00202 virtual void removeParmFolder(const std::vector<std::string> &folder)
00203 throw(HOM_OperationFailed, HOM_ObjectWasDeleted, HOM_PermissionError,
00204 HOM_Error) = 0;
00205
00206 virtual void replaceParmTuple(
00207 const char *parm_tuple_name,
00208 HOM_ParmTemplate &parm_template)
00209 throw(HOM_OperationFailed, HOM_ObjectWasDeleted, HOM_PermissionError,
00210 HOM_TypeError, HOM_Error) = 0;
00211
00212 virtual void setExtraFileOption(const char *name, boost::any value)
00213 throw(HOM_TypeError, HOM_ObjectWasDeleted, HOM_Error) = 0;
00214 virtual void removeExtraFileOption(const char *name)
00215 throw(HOM_OperationFailed, HOM_TypeError, HOM_PermissionError,
00216 HOM_ObjectWasDeleted, HOM_Error) = 0;
00217
00218
00219
00220
00221
00222 SWIGOUT(%ignore getRawExtraFileOptions;)
00223 virtual void getRawExtraFileOptions(UT_Options &options)
00224 throw(HOM_ObjectWasDeleted, HOM_Error) = 0;
00225
00226 #ifdef SWIG
00227 #ifdef SWIGPYTHON
00228 %extend
00229 {
00230 SWIGPYTHONOUT(%feature("autodoc",
00231 "extraFileOptions(self) -> dict of str to"
00232 " int, bool, float, string, Vector2, Vector3, Vector4, "
00233 " Quaternion, Matrix3, or Matrix4") extraFileOptions;)
00234 InterpreterObject extraFileOptions()
00235 throw(HOM_ObjectWasDeleted, HOM_Error)
00236 {
00237 UT_Options options;
00238 self->getRawExtraFileOptions(options);
00239 return HOMoptionsToInterpreterObject(options);
00240 }
00241 }
00242 #endif
00243 #endif
00244 };
00245
00246 #endif