00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __SOP_PolySplit_h__
00021 #define __SOP_PolySplit_h__
00022
00023 #include "SOP_API.h"
00024 #include <UT/UT_PtrArray.h>
00025 #include "SOP_Node.h"
00026
00027 class MSS_PolySplitState;
00028
00029 class SOP_API SOP_PolySplit : public SOP_Node
00030 {
00031 public:
00032 SOP_PolySplit(OP_Network *net, const char *name,
00033 OP_Operator *entry);
00034 virtual ~SOP_PolySplit();
00035
00036 virtual unsigned disableParms();
00037
00038 static OP_Node *myConstructor(OP_Network *net,
00039 const char *name,
00040 OP_Operator *entry);
00041
00042 static PRM_Template myTemplateList[];
00043
00044 protected:
00045 virtual OP_ERROR cookMySop(OP_Context &context);
00046 virtual const char *inputLabel(unsigned idx) const;
00047
00048 private:
00049
00050
00051 void getSplitLoc(UT_String &str, float t)
00052 { evalString(str, 0, 0, t); }
00053
00054 void setSplitLoc(UT_String &str, float t, CH_StringMeaning meaning)
00055 { setString(str, meaning, 0, 0, t); }
00056
00057 int PATHTYPE() { return evalInt(1, 0, 0); }
00058 int OVERRIDET() { return evalInt(2, 0, 0); }
00059 float NEWT(float t) { return evalFloat(3, 0, t); }
00060 int UPDATENORMS(float t) { return evalInt(4, 0, t); }
00061
00062 int CLOSED() { return evalInt(5, 0, 0); }
00063 void SET_CLOSED(int i) { setInt(5, 0, 0, i); }
00064 float TOLERANCE(float t) { return evalFloat(6, 0, t); }
00065
00066
00067 friend class sop_SplitParser;
00068 friend class MSS_PolySplitState;
00069 };
00070
00071 #endif