00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __SOP_UVFuse_h__
00021 #define __SOP_UVFuse_h__
00022
00023 #include "SOP_API.h"
00024 #include "SOP_Node.h"
00025
00026 enum {
00027 SOP_UVFUSE_GRP_IDX = 0,
00028 SOP_UVFUSE_GRPTYPE_IDX,
00029
00030 SOP_UVFUSE_MANPOS_IDX,
00031
00032 SOP_UVFUSE_POSTYPE_IDX,
00033 SOP_UVFUSE_USEDIST_IDX,
00034 SOP_UVFUSE_DIST_IDX,
00035 SOP_UVFUSE_METRIC_IDX,
00036
00037 SOP_UVFUSE_UVW_IDX
00038 };
00039
00040 class SOP_API SOP_UVFuse : public SOP_Node
00041 {
00042 public:
00043 SOP_UVFuse(OP_Network *net, const char *name, OP_Operator *entry);
00044 virtual ~SOP_UVFuse();
00045
00046 virtual unsigned disableParms();
00047
00048 static OP_Node *myConstructor(OP_Network *net,
00049 const char *name,
00050 OP_Operator *entry);
00051
00052 static PRM_Template myTemplateList[];
00053
00054 virtual OP_ERROR cookInputGroups(OP_Context &context,
00055 int alone = 0);
00056
00057 protected:
00058 virtual OP_ERROR cookMySop(OP_Context &context);
00059 virtual const char *inputLabel(unsigned idx) const;
00060
00061 private:
00062 void getGroupString(UT_String &str)
00063 { evalString(str, 0, 0, 0.0f); }
00064
00065 int GRPTYPE() { return evalInt(1, 0, 0); }
00066
00067 int MANPOS() { return evalInt(2, 0, 0); }
00068
00069
00070
00071 int POSTYPE() { return evalInt(3, 0, 0); }
00072 int USEDIST() { return evalInt(4, 0, 0); }
00073 float DISTANCE(float t) { return evalFloat(5, 0, t); }
00074 int METRIC() { return evalInt(6, 0, 0); }
00075
00076
00077
00078 float U(float t) { return evalFloat( 7, 0, t); }
00079 float V(float t) { return evalFloat( 7, 1, t); }
00080 float W(float t) { return evalFloat( 7, 2, t); }
00081
00082
00083
00084 int LINETYPE() { return evalInt(8, 0, 0); }
00085 float SPACINGX(float t) { return evalFloat(9, 0, t); }
00086 float SPACINGY(float t) { return evalFloat(9, 1, t); }
00087 float SPACINGZ(float t) { return evalFloat(9, 2, t); }
00088 float NUMLINESX(float t) { return evalFloat(10, 0, t); }
00089 float NUMLINESY(float t) { return evalFloat(10, 1, t); }
00090 float NUMLINESZ(float t) { return evalFloat(10, 2, t); }
00091 int POW2X(float t) { return evalInt(11, 0, t); }
00092 int POW2Y(float t) { return evalInt(11, 1, t); }
00093 int POW2Z(float t) { return evalInt(11, 2, t); }
00094 float OFFSETX(float t) { return evalFloat(12, 0, t); }
00095 float OFFSETY(float t) { return evalFloat(12, 1, t); }
00096 float OFFSETZ(float t) { return evalFloat(12, 2, t); }
00097 int GRIDROUNDTYPE() { return evalInt(13, 0, 0); }
00098 float GRIDTOL(float t) { return evalFloat(14, 0, t); }
00099
00100 bool isVtxUV();
00101
00102 GU_DetailGroupPair myDetailGroupPair;
00103
00104 const GB_BaseGroup *myGroup;
00105 };
00106
00107 #endif