23 namespace SOP_SwitchIfEnums
36 using namespace UT::Literal;
56 using namespace UT::Literal;
77 using namespace UT::Literal;
99 using namespace UT::Literal;
100 switch (enum_value) {
122 using namespace UT::Literal;
123 switch (enum_value) {
143 using namespace UT::Literal;
144 switch (enum_value) {
164 using namespace UT::Literal;
165 switch (enum_value) {
188 using namespace UT::Literal;
189 switch (enum_value) {
209 using namespace UT::Literal;
210 switch (enum_value) {
231 using namespace UT::Literal;
232 switch (enum_value) {
252 using namespace UT::Literal;
253 switch (enum_value) {
294 attributes =
""_UTsh;
297 attribstringcomp = 0;
299 attribsval =
""_UTsh;
301 countgroup =
""_UTsh;
310 if (enable != src.
enable)
return false;
312 if (expr != src.
expr)
return false;
313 if (attribtype != src.
attribtype)
return false;
315 if (attributes != src.
attributes)
return false;
319 if (attribval != src.
attribval)
return false;
320 if (attribsval != src.
attribsval)
return false;
321 if (counttype != src.
counttype)
return false;
322 if (countgroup != src.
countgroup)
return false;
323 if (countcomp != src.
countcomp)
return false;
324 if (countval != src.
countval)
return false;
341 for (
int i = 0; i < list.
entries(); i++)
347 buf.
appendSprintf(
"%s", (list(i).enable) ?
"true" :
"false");
389 myMergeCondition = 0;
404 if (myMergeCondition != src.myMergeCondition)
return false;
405 if (myTestInput != src.myTestInput)
return false;
406 if (myTests != src.myTests)
return false;
430 myMergeCondition = 0;
432 graph->
evalOpParm(myMergeCondition, nodeidx,
"mergecondition", time, 0);
435 graph->
evalOpParm(myTestInput, nodeidx,
"testinput", time, 0);
439 graph->
evalOpParm(length, nodeidx,
"tests", time, 0);
440 if (length < 0) length = 0;
441 myTests.setSize(length);
448 auto && _curentry = myTests(i);
450 _curentry.enable =
true;
452 graph->
evalOpParmInst(_curentry.enable, nodeidx,
"enable#", parmidx, offsets, time, 0, 2-1);
454 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
455 graph->
evalOpParmInst(_curentry.type, nodeidx,
"type#", parmidx, offsets, time, 0, 2-1);
457 if (
true && ( (
true&&!(((_curentry.type!=0))||((_curentry.enable==0)))) ) )
458 graph->
evalOpParmInst(_curentry.expr, nodeidx,
"expr#", parmidx, offsets, time, 0, 2-1);
459 _curentry.attribtype = 0;
460 if (
true && ( (
true&&!(((_curentry.type!=1))||((_curentry.enable==0)))) ) )
461 graph->
evalOpParmInst(_curentry.attribtype, nodeidx,
"attribtype#", parmidx, offsets, time, 0, 2-1);
462 _curentry.attribowner = 3;
463 if (
true && ( (
true&&!(((_curentry.type!=1)&&(_curentry.type!=3))||((_curentry.enable==0)))) ) )
464 graph->
evalOpParmInst(_curentry.attribowner, nodeidx,
"attribowner#", parmidx, offsets, time, 0, 2-1);
465 _curentry.attributes =
""_UTsh;
466 if (
true && ( (
true&&!(((_curentry.type!=1)&&(_curentry.type!=3))||((_curentry.enable==0)))) ) )
467 graph->
evalOpParmInst(_curentry.attributes, nodeidx,
"attributes#", parmidx, offsets, time, 0, 2-1);
468 _curentry.attribvaltype = 0;
469 if (
true && ( (
true&&!(((_curentry.type!=3))||((_curentry.enable==0)))) ) )
470 graph->
evalOpParmInst(_curentry.attribvaltype, nodeidx,
"attribvaltype#", parmidx, offsets, time, 0, 2-1);
471 _curentry.attribfloatcomp = 0;
472 if (
true && ( (
true&&!(((_curentry.type!=3))||((_curentry.attribvaltype!=0))||((_curentry.enable==0)))) ) )
473 graph->
evalOpParmInst(_curentry.attribfloatcomp, nodeidx,
"attribfloatcomp#", parmidx, offsets, time, 0, 2-1);
474 _curentry.attribstringcomp = 0;
475 if (
true && ( (
true&&!(((_curentry.type!=3))||((_curentry.attribvaltype!=1))||((_curentry.enable==0)))) ) )
476 graph->
evalOpParmInst(_curentry.attribstringcomp, nodeidx,
"attribstringcomp#", parmidx, offsets, time, 0, 2-1);
477 _curentry.attribval = 0;
478 if (
true && ( (
true&&!(((_curentry.type!=3))||((_curentry.attribvaltype!=0))||((_curentry.enable==0)))) ) )
479 graph->
evalOpParmInst(_curentry.attribval, nodeidx,
"attribval#", parmidx, offsets, time, 0, 2-1);
480 _curentry.attribsval =
""_UTsh;
481 if (
true && ( (
true&&!(((_curentry.type!=3))||((_curentry.attribvaltype!=1))||((_curentry.enable==0)))) ) )
482 graph->
evalOpParmInst(_curentry.attribsval, nodeidx,
"attribsval#", parmidx, offsets, time, 0, 2-1);
483 _curentry.counttype = 0;
484 if (
true && ( (
true&&!(((_curentry.type!=2))||((_curentry.enable==0)))) ) )
485 graph->
evalOpParmInst(_curentry.counttype, nodeidx,
"counttype#", parmidx, offsets, time, 0, 2-1);
486 _curentry.countgroup =
""_UTsh;
487 if (
true && ( (
true&&!(((_curentry.type!=2))||((_curentry.enable==0)))) ) )
488 graph->
evalOpParmInst(_curentry.countgroup, nodeidx,
"countgroup#", parmidx, offsets, time, 0, 2-1);
489 _curentry.countcomp = 0;
490 if (
true && ( (
true&&!(((_curentry.type!=2))||((_curentry.enable==0)))) ) )
491 graph->
evalOpParmInst(_curentry.countcomp, nodeidx,
"countcomp#", parmidx, offsets, time, 0, 2-1);
492 _curentry.countval = 0;
493 if (
true && ( (
true&&!(((_curentry.type!=2))||((_curentry.enable==0)))) ) )
494 graph->
evalOpParmInst(_curentry.countval, nodeidx,
"countval#", parmidx, offsets, time, 0, 2-1);
495 _curentry.hasinputtype = 0;
496 if (
true && ( (
true&&!(((_curentry.type!=4))||((_curentry.enable==0)))) ) )
497 graph->
evalOpParmInst(_curentry.hasinputtype, nodeidx,
"hasinputtype#", parmidx, offsets, time, 0, 2-1);
518 template <
typename T>
525 if (idx.
size() != instance.
size()+1)
530 coerceValue(value, myMergeCondition);
533 coerceValue(value, myTestInput);
537 coerceValue(value, myTests.entries());
538 else if (instance[0] < myTests.entries())
540 auto && _data = myTests(instance[0]);
544 coerceValue(value, _data.enable);
547 coerceValue(value, _data.type);
550 coerceValue(value, _data.expr);
553 coerceValue(value, _data.attribtype);
556 coerceValue(value, _data.attribowner);
559 coerceValue(value, _data.attributes);
562 coerceValue(value, _data.attribvaltype);
565 coerceValue(value, _data.attribfloatcomp);
568 coerceValue(value, _data.attribstringcomp);
571 coerceValue(value, _data.attribval);
574 coerceValue(value, _data.attribsval);
577 coerceValue(value, _data.counttype);
580 coerceValue(value, _data.countgroup);
583 coerceValue(value, _data.countcomp);
586 coerceValue(value, _data.countval);
589 coerceValue(value, _data.hasinputtype);
609 { doGetParmValue(idx, instance, value); }
611 { doGetParmValue(idx, instance, value); }
613 { doGetParmValue(idx, instance, value); }
615 { doGetParmValue(idx, instance, value); }
617 { doGetParmValue(idx, instance, value); }
619 { doGetParmValue(idx, instance, value); }
621 { doGetParmValue(idx, instance, value); }
623 { doGetParmValue(idx, instance, value); }
625 { doGetParmValue(idx, instance, value); }
627 { doGetParmValue(idx, instance, value); }
629 { doGetParmValue(idx, instance, value); }
631 template <
typename T>
638 if (idx.
size() != instance.
size()+1)
643 coerceValue(myMergeCondition, clampMinValue(0, clampMaxValue(3, value ) ));
646 coerceValue(myTestInput, clampMinValue(0, clampMaxValue(2, value ) ));
652 coerceValue(newsize, value);
653 if (newsize < 0) newsize = 0;
654 myTests.setSize(newsize);
660 myTests.setSizeIfNeeded(instance[0]+1);
661 auto && _data = myTests(instance[0]);
665 coerceValue(_data.enable, value);
668 coerceValue(_data.type, value);
671 coerceValue(_data.expr, value);
674 coerceValue(_data.attribtype, value);
677 coerceValue(_data.attribowner, value);
680 coerceValue(_data.attributes, value);
683 coerceValue(_data.attribvaltype, value);
686 coerceValue(_data.attribfloatcomp, value);
689 coerceValue(_data.attribstringcomp, value);
692 coerceValue(_data.attribval, value);
695 coerceValue(_data.attribsval, value);
698 coerceValue(_data.counttype, value);
701 coerceValue(_data.countgroup, value);
704 coerceValue(_data.countcomp, value);
707 coerceValue(_data.countval, value);
710 coerceValue(_data.hasinputtype, value);
721 { doSetParmValue(idx, instance, value); }
723 { doSetParmValue(idx, instance, value); }
725 { doSetParmValue(idx, instance, value); }
727 { doSetParmValue(idx, instance, value); }
729 { doSetParmValue(idx, instance, value); }
731 { doSetParmValue(idx, instance, value); }
733 { doSetParmValue(idx, instance, value); }
735 { doSetParmValue(idx, instance, value); }
737 { doSetParmValue(idx, instance, value); }
739 { doSetParmValue(idx, instance, value); }
741 { doSetParmValue(idx, instance, value); }
759 if (fieldnum.
size() < 1)
764 return "mergecondition";
768 if (fieldnum.
size() == 1)
779 return "attribtype#";
781 return "attribowner#";
783 return "attributes#";
785 return "attribvaltype#";
787 return "attribfloatcomp#";
789 return "attribstringcomp#";
793 return "attribsval#";
797 return "countgroup#";
803 return "hasinputtype#";
814 if (fieldnum.
size() < 1)
815 return PARM_UNSUPPORTED;
823 if (fieldnum.
size() == 1)
824 return PARM_MULTIPARM;
861 return PARM_UNSUPPORTED;
864 return PARM_UNSUPPORTED;
900 loadData(is, rampdata);
918 int typelen = colon - data.
buffer();
932 {
int64 iv =
v; UTwrite(os, &iv); }
934 { UTwrite<fpreal64>(os, &
v); }
936 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
938 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
939 UTwrite<fpreal64>(os, &v.
z()); }
941 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
942 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
954 if (s) s->save(ostr);
956 saveData(os, result);
963 ostr << s->getDataTypeToken();
968 saveData(os, result);
972 void save(std::ostream &os)
const
976 saveData(os, myMergeCondition);
977 saveData(os, myTestInput);
980 UTwrite(os, &length);
983 auto && _curentry = myTests(i);
985 saveData(os, _curentry.enable);
986 saveData(os, _curentry.type);
987 saveData(os, _curentry.expr);
988 saveData(os, _curentry.attribtype);
989 saveData(os, _curentry.attribowner);
990 saveData(os, _curentry.attributes);
991 saveData(os, _curentry.attribvaltype);
992 saveData(os, _curentry.attribfloatcomp);
993 saveData(os, _curentry.attribstringcomp);
994 saveData(os, _curentry.attribval);
995 saveData(os, _curentry.attribsval);
996 saveData(os, _curentry.counttype);
997 saveData(os, _curentry.countgroup);
998 saveData(os, _curentry.countcomp);
999 saveData(os, _curentry.countval);
1000 saveData(os, _curentry.hasinputtype);
1016 loadData(is, myMergeCondition);
1017 loadData(is, myTestInput);
1020 is.
read(&length, 1);
1021 myTests.setSize(length);
1024 auto && _curentry = myTests(i);
1026 loadData(is, _curentry.enable);
1027 loadData(is, _curentry.type);
1028 loadData(is, _curentry.expr);
1029 loadData(is, _curentry.attribtype);
1030 loadData(is, _curentry.attribowner);
1031 loadData(is, _curentry.attributes);
1032 loadData(is, _curentry.attribvaltype);
1033 loadData(is, _curentry.attribfloatcomp);
1034 loadData(is, _curentry.attribstringcomp);
1035 loadData(is, _curentry.attribval);
1036 loadData(is, _curentry.attribsval);
1037 loadData(is, _curentry.counttype);
1038 loadData(is, _curentry.countgroup);
1039 loadData(is, _curentry.countcomp);
1040 loadData(is, _curentry.countval);
1041 loadData(is, _curentry.hasinputtype);
1054 if (!thissop)
return getMergeCondition();
1056 OP_Utils::evalOpParm(result, thissop,
"mergecondition", cookparms.
getCookTime(), 0);
1064 if (!thissop)
return getTestInput();
1066 OP_Utils::evalOpParm(result, thissop,
"testinput", cookparms.
getCookTime(), 0);
1074 if (!thissop)
return getTests().entries();
1076 OP_Utils::evalOpParm(result, thissop,
"tests", cookparms.
getCookTime(), 0);
1080 {
return opinstTests_enable(cookparms, &_idx); }
1084 if (!thissop)
return (myTests(_idx[0]).enable);
1086 _parmidx[1-1] = _idx[1-1] + 1;
1089 OP_Utils::evalOpParmInst(result, thissop,
"enable#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1093 {
return opinstTests_type(cookparms, &_idx); }
1097 if (!thissop)
return (myTests(_idx[0]).
type);
1099 _parmidx[1-1] = _idx[1-1] + 1;
1102 OP_Utils::evalOpParmInst(result, thissop,
"type#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1106 {
return opinstTests_expr(cookparms, &_idx); }
1110 if (!thissop)
return (myTests(_idx[0]).expr);
1112 _parmidx[1-1] = _idx[1-1] + 1;
1115 OP_Utils::evalOpParmInst(result, thissop,
"expr#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1119 {
return opinstTests_attribtype(cookparms, &_idx); }
1123 if (!thissop)
return (myTests(_idx[0]).attribtype);
1125 _parmidx[1-1] = _idx[1-1] + 1;
1128 OP_Utils::evalOpParmInst(result, thissop,
"attribtype#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1132 {
return opinstTests_attribowner(cookparms, &_idx); }
1136 if (!thissop)
return (myTests(_idx[0]).attribowner);
1138 _parmidx[1-1] = _idx[1-1] + 1;
1141 OP_Utils::evalOpParmInst(result, thissop,
"attribowner#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1145 {
return opinstTests_attributes(cookparms, &_idx); }
1149 if (!thissop)
return (myTests(_idx[0]).attributes);
1151 _parmidx[1-1] = _idx[1-1] + 1;
1154 OP_Utils::evalOpParmInst(result, thissop,
"attributes#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1158 {
return opinstTests_attribvaltype(cookparms, &_idx); }
1162 if (!thissop)
return (myTests(_idx[0]).attribvaltype);
1164 _parmidx[1-1] = _idx[1-1] + 1;
1167 OP_Utils::evalOpParmInst(result, thissop,
"attribvaltype#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1171 {
return opinstTests_attribfloatcomp(cookparms, &_idx); }
1175 if (!thissop)
return (myTests(_idx[0]).attribfloatcomp);
1177 _parmidx[1-1] = _idx[1-1] + 1;
1180 OP_Utils::evalOpParmInst(result, thissop,
"attribfloatcomp#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1184 {
return opinstTests_attribstringcomp(cookparms, &_idx); }
1188 if (!thissop)
return (myTests(_idx[0]).attribstringcomp);
1190 _parmidx[1-1] = _idx[1-1] + 1;
1193 OP_Utils::evalOpParmInst(result, thissop,
"attribstringcomp#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1197 {
return opinstTests_attribval(cookparms, &_idx); }
1201 if (!thissop)
return (myTests(_idx[0]).attribval);
1203 _parmidx[1-1] = _idx[1-1] + 1;
1206 OP_Utils::evalOpParmInst(result, thissop,
"attribval#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1210 {
return opinstTests_attribsval(cookparms, &_idx); }
1214 if (!thissop)
return (myTests(_idx[0]).attribsval);
1216 _parmidx[1-1] = _idx[1-1] + 1;
1219 OP_Utils::evalOpParmInst(result, thissop,
"attribsval#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1223 {
return opinstTests_counttype(cookparms, &_idx); }
1227 if (!thissop)
return (myTests(_idx[0]).counttype);
1229 _parmidx[1-1] = _idx[1-1] + 1;
1232 OP_Utils::evalOpParmInst(result, thissop,
"counttype#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1236 {
return opinstTests_countgroup(cookparms, &_idx); }
1240 if (!thissop)
return (myTests(_idx[0]).countgroup);
1242 _parmidx[1-1] = _idx[1-1] + 1;
1245 OP_Utils::evalOpParmInst(result, thissop,
"countgroup#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1249 {
return opinstTests_countcomp(cookparms, &_idx); }
1253 if (!thissop)
return (myTests(_idx[0]).countcomp);
1255 _parmidx[1-1] = _idx[1-1] + 1;
1258 OP_Utils::evalOpParmInst(result, thissop,
"countcomp#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1262 {
return opinstTests_countval(cookparms, &_idx); }
1266 if (!thissop)
return (myTests(_idx[0]).countval);
1268 _parmidx[1-1] = _idx[1-1] + 1;
1271 OP_Utils::evalOpParmInst(result, thissop,
"countval#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1275 {
return opinstTests_hasinputtype(cookparms, &_idx); }
1279 if (!thissop)
return (myTests(_idx[0]).hasinputtype);
1281 _parmidx[1-1] = _idx[1-1] + 1;
1284 OP_Utils::evalOpParmInst(result, thissop,
"hasinputtype#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1290 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)
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
SYS_FORCE_INLINE UT_StringHolder getToken(MergeCondition enum_value)
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
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 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)
LeafData & operator=(const LeafData &)=delete
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
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