23 namespace SOP_SwitchIfEnums
138 attributes =
""_UTsh;
141 attribstringcomp = 0;
143 attribsval =
""_UTsh;
145 countgroup =
""_UTsh;
154 if (enable != src.
enable)
return false;
156 if (expr != src.
expr)
return false;
157 if (attribtype != src.
attribtype)
return false;
159 if (attributes != src.
attributes)
return false;
163 if (attribval != src.
attribval)
return false;
164 if (attribsval != src.
attribsval)
return false;
165 if (counttype != src.
counttype)
return false;
166 if (countgroup != src.
countgroup)
return false;
167 if (countcomp != src.
countcomp)
return false;
168 if (countval != src.
countval)
return false;
185 for (
int i = 0; i < list.
entries(); i++)
191 buf.
appendSprintf(
"%s", (list(i).enable) ?
"true" :
"false");
233 myMergeCondition = 0;
248 if (myMergeCondition != src.myMergeCondition)
return false;
249 if (myTestInput != src.myTestInput)
return false;
250 if (myTests != src.myTests)
return false;
274 myMergeCondition = 0;
276 graph->
evalOpParm(myMergeCondition, nodeidx,
"mergecondition", time, 0);
279 graph->
evalOpParm(myTestInput, nodeidx,
"testinput", time, 0);
283 graph->
evalOpParm(length, nodeidx,
"tests", time, 0);
284 if (length < 0) length = 0;
285 myTests.setSize(length);
292 auto && _curentry = myTests(i);
294 _curentry.enable =
true;
296 graph->
evalOpParmInst(_curentry.enable, nodeidx,
"enable#", parmidx, offsets, time, 0, 2-1);
298 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
299 graph->
evalOpParmInst(_curentry.type, nodeidx,
"type#", parmidx, offsets, time, 0, 2-1);
301 if (
true && ( (
true&&!(((_curentry.type!=0))||((_curentry.enable==0)))) ) )
302 graph->
evalOpParmInst(_curentry.expr, nodeidx,
"expr#", parmidx, offsets, time, 0, 2-1);
303 _curentry.attribtype = 0;
304 if (
true && ( (
true&&!(((_curentry.type!=1))||((_curentry.enable==0)))) ) )
305 graph->
evalOpParmInst(_curentry.attribtype, nodeidx,
"attribtype#", parmidx, offsets, time, 0, 2-1);
306 _curentry.attribowner = 3;
307 if (
true && ( (
true&&!(((_curentry.type!=1)&&(_curentry.type!=3))||((_curentry.enable==0)))) ) )
308 graph->
evalOpParmInst(_curentry.attribowner, nodeidx,
"attribowner#", parmidx, offsets, time, 0, 2-1);
309 _curentry.attributes =
""_UTsh;
310 if (
true && ( (
true&&!(((_curentry.type!=1)&&(_curentry.type!=3))||((_curentry.enable==0)))) ) )
311 graph->
evalOpParmInst(_curentry.attributes, nodeidx,
"attributes#", parmidx, offsets, time, 0, 2-1);
312 _curentry.attribvaltype = 0;
313 if (
true && ( (
true&&!(((_curentry.type!=3))||((_curentry.enable==0)))) ) )
314 graph->
evalOpParmInst(_curentry.attribvaltype, nodeidx,
"attribvaltype#", parmidx, offsets, time, 0, 2-1);
315 _curentry.attribfloatcomp = 0;
316 if (
true && ( (
true&&!(((_curentry.type!=3))||((_curentry.attribvaltype!=0))||((_curentry.enable==0)))) ) )
317 graph->
evalOpParmInst(_curentry.attribfloatcomp, nodeidx,
"attribfloatcomp#", parmidx, offsets, time, 0, 2-1);
318 _curentry.attribstringcomp = 0;
319 if (
true && ( (
true&&!(((_curentry.type!=3))||((_curentry.attribvaltype!=1))||((_curentry.enable==0)))) ) )
320 graph->
evalOpParmInst(_curentry.attribstringcomp, nodeidx,
"attribstringcomp#", parmidx, offsets, time, 0, 2-1);
321 _curentry.attribval = 0;
322 if (
true && ( (
true&&!(((_curentry.type!=3))||((_curentry.attribvaltype!=0))||((_curentry.enable==0)))) ) )
323 graph->
evalOpParmInst(_curentry.attribval, nodeidx,
"attribval#", parmidx, offsets, time, 0, 2-1);
324 _curentry.attribsval =
""_UTsh;
325 if (
true && ( (
true&&!(((_curentry.type!=3))||((_curentry.attribvaltype!=1))||((_curentry.enable==0)))) ) )
326 graph->
evalOpParmInst(_curentry.attribsval, nodeidx,
"attribsval#", parmidx, offsets, time, 0, 2-1);
327 _curentry.counttype = 0;
328 if (
true && ( (
true&&!(((_curentry.type!=2))||((_curentry.enable==0)))) ) )
329 graph->
evalOpParmInst(_curentry.counttype, nodeidx,
"counttype#", parmidx, offsets, time, 0, 2-1);
330 _curentry.countgroup =
""_UTsh;
331 if (
true && ( (
true&&!(((_curentry.type!=2))||((_curentry.enable==0)))) ) )
332 graph->
evalOpParmInst(_curentry.countgroup, nodeidx,
"countgroup#", parmidx, offsets, time, 0, 2-1);
333 _curentry.countcomp = 0;
334 if (
true && ( (
true&&!(((_curentry.type!=2))||((_curentry.enable==0)))) ) )
335 graph->
evalOpParmInst(_curentry.countcomp, nodeidx,
"countcomp#", parmidx, offsets, time, 0, 2-1);
336 _curentry.countval = 0;
337 if (
true && ( (
true&&!(((_curentry.type!=2))||((_curentry.enable==0)))) ) )
338 graph->
evalOpParmInst(_curentry.countval, nodeidx,
"countval#", parmidx, offsets, time, 0, 2-1);
339 _curentry.hasinputtype = 0;
340 if (
true && ( (
true&&!(((_curentry.type!=4))||((_curentry.enable==0)))) ) )
341 graph->
evalOpParmInst(_curentry.hasinputtype, nodeidx,
"hasinputtype#", parmidx, offsets, time, 0, 2-1);
362 template <
typename T>
369 if (idx.
size() != instance.
size()+1)
382 else if (instance[0] < myTests.entries())
384 auto && _data = myTests(instance[0]);
453 { doGetParmValue(idx, instance, value); }
455 { doGetParmValue(idx, instance, value); }
457 { doGetParmValue(idx, instance, value); }
459 { doGetParmValue(idx, instance, value); }
461 { doGetParmValue(idx, instance, value); }
463 { doGetParmValue(idx, instance, value); }
465 { doGetParmValue(idx, instance, value); }
467 { doGetParmValue(idx, instance, value); }
469 { doGetParmValue(idx, instance, value); }
471 { doGetParmValue(idx, instance, value); }
473 { doGetParmValue(idx, instance, value); }
475 template <
typename T>
482 if (idx.
size() != instance.
size()+1)
497 if (newsize < 0) newsize = 0;
498 myTests.setSize(newsize);
504 myTests.setSizeIfNeeded(instance[0]+1);
505 auto && _data = myTests(instance[0]);
565 { doSetParmValue(idx, instance, value); }
567 { doSetParmValue(idx, instance, value); }
569 { doSetParmValue(idx, instance, value); }
571 { doSetParmValue(idx, instance, value); }
573 { doSetParmValue(idx, instance, value); }
575 { doSetParmValue(idx, instance, value); }
577 { doSetParmValue(idx, instance, value); }
579 { doSetParmValue(idx, instance, value); }
581 { doSetParmValue(idx, instance, value); }
583 { doSetParmValue(idx, instance, value); }
585 { doSetParmValue(idx, instance, value); }
603 if (fieldnum.
size() < 1)
608 return "mergecondition";
612 if (fieldnum.
size() == 1)
623 return "attribtype#";
625 return "attribowner#";
627 return "attributes#";
629 return "attribvaltype#";
631 return "attribfloatcomp#";
633 return "attribstringcomp#";
637 return "attribsval#";
641 return "countgroup#";
647 return "hasinputtype#";
658 if (fieldnum.
size() < 1)
659 return PARM_UNSUPPORTED;
667 if (fieldnum.
size() == 1)
668 return PARM_MULTIPARM;
727 {
for (
int r = 0;
r < 2;
r++)
for (
int c = 0; c < 2; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
729 {
for (
int r = 0;
r < 3;
r++)
for (
int c = 0; c < 3; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
731 {
for (
int r = 0;
r < 4;
r++)
for (
int c = 0; c < 4; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
744 loadData(is, rampdata);
762 int typelen = colon - data.
buffer();
776 {
int64 iv =
v; UTwrite(os, &iv); }
778 { UTwrite<fpreal64>(os, &
v); }
780 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
782 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
783 UTwrite<fpreal64>(os, &v.
z()); }
785 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
786 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
798 if (s) s->save(ostr);
800 saveData(os, result);
807 ostr << s->getDataTypeToken();
812 saveData(os, result);
816 void save(std::ostream &os)
const
820 saveData(os, myMergeCondition);
821 saveData(os, myTestInput);
824 UTwrite(os, &length);
827 auto && _curentry = myTests(i);
829 saveData(os, _curentry.enable);
830 saveData(os, _curentry.type);
831 saveData(os, _curentry.expr);
832 saveData(os, _curentry.attribtype);
833 saveData(os, _curentry.attribowner);
834 saveData(os, _curentry.attributes);
835 saveData(os, _curentry.attribvaltype);
836 saveData(os, _curentry.attribfloatcomp);
837 saveData(os, _curentry.attribstringcomp);
838 saveData(os, _curentry.attribval);
839 saveData(os, _curentry.attribsval);
840 saveData(os, _curentry.counttype);
841 saveData(os, _curentry.countgroup);
842 saveData(os, _curentry.countcomp);
843 saveData(os, _curentry.countval);
844 saveData(os, _curentry.hasinputtype);
860 loadData(is, myMergeCondition);
861 loadData(is, myTestInput);
865 myTests.setSize(length);
868 auto && _curentry = myTests(i);
870 loadData(is, _curentry.enable);
871 loadData(is, _curentry.type);
872 loadData(is, _curentry.expr);
873 loadData(is, _curentry.attribtype);
874 loadData(is, _curentry.attribowner);
875 loadData(is, _curentry.attributes);
876 loadData(is, _curentry.attribvaltype);
877 loadData(is, _curentry.attribfloatcomp);
878 loadData(is, _curentry.attribstringcomp);
879 loadData(is, _curentry.attribval);
880 loadData(is, _curentry.attribsval);
881 loadData(is, _curentry.counttype);
882 loadData(is, _curentry.countgroup);
883 loadData(is, _curentry.countcomp);
884 loadData(is, _curentry.countval);
885 loadData(is, _curentry.hasinputtype);
898 if (!thissop)
return getMergeCondition();
900 OP_Utils::evalOpParm(result, thissop,
"mergecondition", cookparms.
getCookTime(), 0);
908 if (!thissop)
return getTestInput();
910 OP_Utils::evalOpParm(result, thissop,
"testinput", cookparms.
getCookTime(), 0);
918 if (!thissop)
return getTests().entries();
920 OP_Utils::evalOpParm(result, thissop,
"tests", cookparms.
getCookTime(), 0);
924 {
return opinstTests_enable(cookparms, &_idx); }
928 if (!thissop)
return (myTests(_idx[0]).enable);
930 _parmidx[1-1] = _idx[1-1] + 1;
933 OP_Utils::evalOpParmInst(result, thissop,
"enable#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
937 {
return opinstTests_type(cookparms, &_idx); }
941 if (!thissop)
return (myTests(_idx[0]).
type);
943 _parmidx[1-1] = _idx[1-1] + 1;
946 OP_Utils::evalOpParmInst(result, thissop,
"type#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
950 {
return opinstTests_expr(cookparms, &_idx); }
954 if (!thissop)
return (myTests(_idx[0]).expr);
956 _parmidx[1-1] = _idx[1-1] + 1;
959 OP_Utils::evalOpParmInst(result, thissop,
"expr#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
963 {
return opinstTests_attribtype(cookparms, &_idx); }
967 if (!thissop)
return (myTests(_idx[0]).attribtype);
969 _parmidx[1-1] = _idx[1-1] + 1;
972 OP_Utils::evalOpParmInst(result, thissop,
"attribtype#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
976 {
return opinstTests_attribowner(cookparms, &_idx); }
980 if (!thissop)
return (myTests(_idx[0]).attribowner);
982 _parmidx[1-1] = _idx[1-1] + 1;
985 OP_Utils::evalOpParmInst(result, thissop,
"attribowner#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
989 {
return opinstTests_attributes(cookparms, &_idx); }
993 if (!thissop)
return (myTests(_idx[0]).attributes);
995 _parmidx[1-1] = _idx[1-1] + 1;
998 OP_Utils::evalOpParmInst(result, thissop,
"attributes#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1002 {
return opinstTests_attribvaltype(cookparms, &_idx); }
1006 if (!thissop)
return (myTests(_idx[0]).attribvaltype);
1008 _parmidx[1-1] = _idx[1-1] + 1;
1011 OP_Utils::evalOpParmInst(result, thissop,
"attribvaltype#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1015 {
return opinstTests_attribfloatcomp(cookparms, &_idx); }
1019 if (!thissop)
return (myTests(_idx[0]).attribfloatcomp);
1021 _parmidx[1-1] = _idx[1-1] + 1;
1024 OP_Utils::evalOpParmInst(result, thissop,
"attribfloatcomp#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1028 {
return opinstTests_attribstringcomp(cookparms, &_idx); }
1032 if (!thissop)
return (myTests(_idx[0]).attribstringcomp);
1034 _parmidx[1-1] = _idx[1-1] + 1;
1037 OP_Utils::evalOpParmInst(result, thissop,
"attribstringcomp#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1041 {
return opinstTests_attribval(cookparms, &_idx); }
1045 if (!thissop)
return (myTests(_idx[0]).attribval);
1047 _parmidx[1-1] = _idx[1-1] + 1;
1050 OP_Utils::evalOpParmInst(result, thissop,
"attribval#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1054 {
return opinstTests_attribsval(cookparms, &_idx); }
1058 if (!thissop)
return (myTests(_idx[0]).attribsval);
1060 _parmidx[1-1] = _idx[1-1] + 1;
1063 OP_Utils::evalOpParmInst(result, thissop,
"attribsval#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1067 {
return opinstTests_counttype(cookparms, &_idx); }
1071 if (!thissop)
return (myTests(_idx[0]).counttype);
1073 _parmidx[1-1] = _idx[1-1] + 1;
1076 OP_Utils::evalOpParmInst(result, thissop,
"counttype#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1080 {
return opinstTests_countgroup(cookparms, &_idx); }
1084 if (!thissop)
return (myTests(_idx[0]).countgroup);
1086 _parmidx[1-1] = _idx[1-1] + 1;
1089 OP_Utils::evalOpParmInst(result, thissop,
"countgroup#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1093 {
return opinstTests_countcomp(cookparms, &_idx); }
1097 if (!thissop)
return (myTests(_idx[0]).countcomp);
1099 _parmidx[1-1] = _idx[1-1] + 1;
1102 OP_Utils::evalOpParmInst(result, thissop,
"countcomp#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1106 {
return opinstTests_countval(cookparms, &_idx); }
1110 if (!thissop)
return (myTests(_idx[0]).countval);
1112 _parmidx[1-1] = _idx[1-1] + 1;
1115 OP_Utils::evalOpParmInst(result, thissop,
"countval#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1119 {
return opinstTests_hasinputtype(cookparms, &_idx); }
1123 if (!thissop)
return (myTests(_idx[0]).hasinputtype);
1125 _parmidx[1-1] = _idx[1-1] + 1;
1128 OP_Utils::evalOpParmInst(result, thissop,
"hasinputtype#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1134 int64 myMergeCondition;
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
const char * getNestParmName(TempIndex fieldnum) const override
int64 opTests_attribvaltype(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
GLenum GLuint GLenum GLsizei const GLchar * buf
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
static void loadData(UT_IStream &is, UT_Vector2D &v)
static void loadData(UT_IStream &is, UT_Vector4I &v)
SOP_Node * getNode() const
static void loadData(UT_IStream &is, UT_StringHolder &v)
exint getNestNumParms(TempIndex idx) const override
fpreal64 opinstTests_attribval(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
UT_StringHolder countgroup
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
exint opTests(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
T clampMaxValue(fpreal maxvalue, const T &src) const
UT_StringHolder opTests_attributes(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
exint bread(int32 *buffer, exint asize=1)
static void loadData(UT_IStream &is, bool &v)
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
UT_StringHolder opinstTests_attributes(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool operator==(const Tests &src) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
int64 opinstTests_attribstringcomp(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
const OP_Context & context() const
bool opinstTests_enable(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
constexpr SYS_FORCE_INLINE T & z() noexcept
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
SYS_FORCE_INLINE const char * buffer() const
GLuint GLsizei GLsizei * length
An output stream object that owns its own string buffer storage.
static void loadData(UT_IStream &is, UT_Vector3D &v)
UT_StringHolder opTests_countgroup(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
**But if you need a result
const UT_Array< Tests > & getTests() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
T clampMinValue(fpreal minvalue, const T &src) const
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
bool operator==(const SOP_SwitchIfParms &src) const
constexpr SYS_FORCE_INLINE T & x() noexcept
int64 opinstTests_countcomp(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
GLuint GLsizei const GLuint const GLintptr * offsets
void loadFromOpSubclass(const LoadParms &loadparms) override
UT_StringHolder createString(const UT_Array< Tests > &list) const
constexpr SYS_FORCE_INLINE T & x() noexcept
static void loadData(UT_IStream &is, UT_Matrix4D &v)
static void saveData(std::ostream &os, UT_Matrix2D v)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
UT_StringHolder attributes
int64 opTests_countcomp(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void saveData(std::ostream &os, UT_Vector2D v)
static void saveData(std::ostream &os, UT_Matrix3D v)
bool operator!=(const SOP_SwitchIfParms &src) const
void copyFrom(const OP_NodeParms *src) override
MergeCondition getMergeCondition() const
void setMergeCondition(MergeCondition val)
int64 opinstTests_expr(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
int64 opinstTests_attribvaltype(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
UT_StringHolder opinstTests_countgroup(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
constexpr SYS_FORCE_INLINE T & z() noexcept
UT_StringHolder opTests_attribsval(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
exint read(bool *array, exint sz=1)
const OP_GraphProxy * graph() const
static void saveData(std::ostream &os, UT_Vector3D v)
bool opTests_enable(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
fpreal64 opTests_attribval(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
virtual void evalOpParmInst(int64 &v, NodeIdx node, const char *parmname, const int *inst, const int *offsets, fpreal time, DEP_MicroNode *depnode, int nestlevel=1) const =0
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
int64 opTests_type(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void saveData(std::ostream &os, UT_Vector4D v)
int64 opTests_attribowner(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
int64 opinstTests_attribowner(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
MergeCondition opMergeCondition(const SOP_NodeVerb::CookParms &cookparms) const
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void setTests(const UT_Array< Tests > &val)
TestInput getTestInput() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
SYS_FORCE_INLINE void strcat(const char *src)
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
static void saveData(std::ostream &os, fpreal64 v)
void saveBinary(std::ostream &os) const
Save string to binary stream.
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
GT_API const UT_StringHolder version
int64 opTests_countval(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
exint entries() const
Alias of size(). size() is preferred.
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
static void loadData(UT_IStream &is, UT_Matrix3D &v)
int int appendSprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
TestInput opTestInput(const SOP_NodeVerb::CookParms &cookparms) const
int64 opinstTests_hasinputtype(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void saveData(std::ostream &os, bool v)
ParmType getNestParmType(TempIndex fieldnum) const override
bool operator!=(const Tests &src) const
int64 opTests_attribtype(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void coerceValue(T &result, const S &src) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
static void loadData(UT_IStream &is, UT_Vector3I &v)
void setTestInput(TestInput val)
static void saveData(std::ostream &os, int64 v)
DEP_MicroNode * depnode() const
bool load(UT_IStream &is)
int64 opTests_attribfloatcomp(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
Utility class for containing a color ramp.
UT_StringHolder attribsval
static void loadData(UT_IStream &is, UT_Vector4D &v)
static void loadData(UT_IStream &is, fpreal64 &v)
constexpr SYS_FORCE_INLINE T & w() noexcept
SYS_FORCE_INLINE void append(char character)
static void saveData(std::ostream &os, UT_Matrix4D v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
static void saveData(std::ostream &os, UT_StringHolder s)
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
int64 opTests_hasinputtype(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
static void loadData(UT_IStream &is, UT_Vector2I &v)
fpreal getCookTime() const
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
int64 opinstTests_attribtype(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void save(std::ostream &os) const
int64 opTests_attribstringcomp(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
const char * findChar(int c) const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
int64 opTests_expr(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
static void loadData(UT_IStream &is, int64 &v)
int64 opinstTests_countval(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
int64 opinstTests_counttype(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
int64 opinstTests_type(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
UT_StringHolder opinstTests_attribsval(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
constexpr SYS_FORCE_INLINE T & y() noexcept
bool isParmColorRamp(exint idx) const override
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
int64 opTests_counttype(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
static void loadData(UT_IStream &is, UT_Matrix2D &v)
constexpr SYS_FORCE_INLINE T & y() noexcept
SYS_FORCE_INLINE bool isstring() const
int64 opinstTests_attribfloatcomp(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
OP_NodeParms & operator=(const OP_NodeParms &)=default
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
constexpr SYS_FORCE_INLINE T & x() noexcept