00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __OBJ_Fetch__
00021 #define __OBJ_Fetch__
00022
00023 #include "OBJ_API.h"
00024 #include "OBJ_Geometry.h"
00025
00026 enum OBJ_FetchIndex
00027 {
00028 I_FETCHOBJPATH = I_N_GEO_INDICES,
00029 I_FETCH_USE_INPUT_OF_THIS,
00030 I_FETCH_USE_INPUT_OF_FETCHED,
00031 I_FETCHSUBNET,
00032 I_FETCHINVERT,
00033
00034 I_N_FETCH_INDICES
00035 };
00036
00037
00038 class OBJ_API OBJ_Fetch : public OBJ_Geometry
00039 {
00040 public:
00041 OBJ_Fetch(OP_Network *net,
00042 const char *name,
00043 OP_Operator *op);
00044 virtual ~OBJ_Fetch();
00045
00046 virtual OBJ_OBJECT_TYPE getObjectType() const;
00047
00048 void FETCHOBJPATH(UT_String &str)
00049 {
00050 evalString(str, "fetchobjpath",
00051 &getIndirect()[I_FETCHOBJPATH],
00052 0, 0.0f);
00053 }
00054 void setFETCHOBJPATH(const UT_String &str,
00055 CH_StringMeaning meaning)
00056 {
00057 setString(str, meaning, "fetchobjpath",
00058 getIndirect()[I_FETCHOBJPATH],
00059 0, 0.0f);
00060 }
00061 int USEINPUTOFTHIS()
00062 {
00063 return evalInt("useinputofthis",
00064 &getIndirect()[I_FETCH_USE_INPUT_OF_THIS],
00065 0, 0.0f);
00066 }
00067 void setUSEINPUTOFTHIS( bool flag )
00068 {
00069 setInt("useinputofthis",
00070 getIndirect()[I_FETCH_USE_INPUT_OF_THIS],
00071 0, 0.0f, flag);
00072 }
00073 int USEINPUTOFFETCHED()
00074 {
00075 return evalInt("useinputoffetched",
00076 &getIndirect()[I_FETCH_USE_INPUT_OF_FETCHED],
00077 0, 0.0f);
00078 }
00079 void setUSEINPUTOFFETCHED( bool flag )
00080 {
00081 setInt("useinputoffetched",
00082 getIndirect()[I_FETCH_USE_INPUT_OF_FETCHED],
00083 0, 0.0f, flag);
00084 }
00085 int FETCHSUBNET()
00086 {
00087 return evalInt("fetchsubnet",
00088 &getIndirect()[I_FETCHSUBNET],
00089 0, 0.0f);
00090 }
00091 void setFETCHSUBNET( int fetch_subnet )
00092 {
00093 setInt("fetchsubnet",
00094 getIndirect()[I_FETCHSUBNET],
00095 0, 0.0f, fetch_subnet );
00096 }
00097 bool FETCHINVERT()
00098 {
00099 return (bool) evalInt("invertfetched",
00100 &getIndirect()[I_FETCHINVERT],
00101 0, 0.0f);
00102 }
00103
00104 virtual void resolveObsoleteParms(
00105 PRM_ParmList *obsolete_parms);
00106 virtual unsigned disableParms();
00107
00108 static OP_Node *myConstructor(OP_Network *net,
00109 const char *name,
00110 OP_Operator *entry);
00111
00112 static PRM_Template *getTemplateList();
00113 static PRM_Template *getObsolete();
00114
00115 virtual OBJ_Fetch *castToOBJFetch() { return this; }
00116
00117 virtual void getNodeSpecificInfoText(OP_Context &context,
00118 int verbose,
00119 UT_WorkBuffer &text);
00120
00121 protected:
00122
00123 virtual int *getIndirect() const
00124 { return fetchIndirect; }
00125
00126 virtual OP_ERROR cookMyObj(OP_Context &context);
00127
00128 private:
00129 static int *fetchIndirect;
00130 };
00131
00132 #endif
00133