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;
433 myMergeCondition = 0;
435 graph->
evalOpParm(myMergeCondition, nodeidx,
"mergecondition", time, graph->
isDirect()?
nullptr:depnode);
438 graph->
evalOpParm(myTestInput, nodeidx,
"testinput", time, graph->
isDirect()?
nullptr:depnode);
443 if (length < 0) length = 0;
444 myTests.setSize(length);
451 auto && _curentry = myTests(i);
453 _curentry.enable =
true;
455 graph->
evalOpParmInst(_curentry.enable, nodeidx,
"enable#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
457 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
458 graph->
evalOpParmInst(_curentry.type, nodeidx,
"type#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
460 if (
true && ( (
true&&!(((_curentry.type!=0))||((_curentry.enable==0)))) ) )
461 graph->
evalOpParmInst(_curentry.expr, nodeidx,
"expr#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
462 _curentry.attribtype = 0;
463 if (
true && ( (
true&&!(((_curentry.type!=1))||((_curentry.enable==0)))) ) )
464 graph->
evalOpParmInst(_curentry.attribtype, nodeidx,
"attribtype#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
465 _curentry.attribowner = 3;
466 if (
true && ( (
true&&!(((_curentry.type!=1)&&(_curentry.type!=3))||((_curentry.enable==0)))) ) )
467 graph->
evalOpParmInst(_curentry.attribowner, nodeidx,
"attribowner#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
468 _curentry.attributes =
""_UTsh;
469 if (
true && ( (
true&&!(((_curentry.type!=1)&&(_curentry.type!=3))||((_curentry.enable==0)))) ) )
470 graph->
evalOpParmInst(_curentry.attributes, nodeidx,
"attributes#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
471 _curentry.attribvaltype = 0;
472 if (
true && ( (
true&&!(((_curentry.type!=3))||((_curentry.enable==0)))) ) )
473 graph->
evalOpParmInst(_curentry.attribvaltype, nodeidx,
"attribvaltype#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
474 _curentry.attribfloatcomp = 0;
475 if (
true && ( (
true&&!(((_curentry.type!=3))||((_curentry.attribvaltype!=0))||((_curentry.enable==0)))) ) )
476 graph->
evalOpParmInst(_curentry.attribfloatcomp, nodeidx,
"attribfloatcomp#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
477 _curentry.attribstringcomp = 0;
478 if (
true && ( (
true&&!(((_curentry.type!=3))||((_curentry.attribvaltype!=1))||((_curentry.enable==0)))) ) )
479 graph->
evalOpParmInst(_curentry.attribstringcomp, nodeidx,
"attribstringcomp#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
480 _curentry.attribval = 0;
481 if (
true && ( (
true&&!(((_curentry.type!=3))||((_curentry.attribvaltype!=0))||((_curentry.enable==0)))) ) )
482 graph->
evalOpParmInst(_curentry.attribval, nodeidx,
"attribval#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
483 _curentry.attribsval =
""_UTsh;
484 if (
true && ( (
true&&!(((_curentry.type!=3))||((_curentry.attribvaltype!=1))||((_curentry.enable==0)))) ) )
485 graph->
evalOpParmInst(_curentry.attribsval, nodeidx,
"attribsval#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
486 _curentry.counttype = 0;
487 if (
true && ( (
true&&!(((_curentry.type!=2))||((_curentry.enable==0)))) ) )
488 graph->
evalOpParmInst(_curentry.counttype, nodeidx,
"counttype#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
489 _curentry.countgroup =
""_UTsh;
490 if (
true && ( (
true&&!(((_curentry.type!=2))||((_curentry.enable==0)))) ) )
491 graph->
evalOpParmInst(_curentry.countgroup, nodeidx,
"countgroup#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
492 _curentry.countcomp = 0;
493 if (
true && ( (
true&&!(((_curentry.type!=2))||((_curentry.enable==0)))) ) )
494 graph->
evalOpParmInst(_curentry.countcomp, nodeidx,
"countcomp#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
495 _curentry.countval = 0;
496 if (
true && ( (
true&&!(((_curentry.type!=2))||((_curentry.enable==0)))) ) )
497 graph->
evalOpParmInst(_curentry.countval, nodeidx,
"countval#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
498 _curentry.hasinputtype = 0;
499 if (
true && ( (
true&&!(((_curentry.type!=4))||((_curentry.enable==0)))) ) )
500 graph->
evalOpParmInst(_curentry.hasinputtype, nodeidx,
"hasinputtype#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
521 template <
typename T>
528 if (idx.
size() != instance.
size()+1)
533 coerceValue(value, myMergeCondition);
536 coerceValue(value, myTestInput);
540 coerceValue(value, myTests.entries());
541 else if (instance[0] < myTests.entries())
543 auto && _data = myTests(instance[0]);
547 coerceValue(value, _data.enable);
550 coerceValue(value, _data.type);
553 coerceValue(value, _data.expr);
556 coerceValue(value, _data.attribtype);
559 coerceValue(value, _data.attribowner);
562 coerceValue(value, _data.attributes);
565 coerceValue(value, _data.attribvaltype);
568 coerceValue(value, _data.attribfloatcomp);
571 coerceValue(value, _data.attribstringcomp);
574 coerceValue(value, _data.attribval);
577 coerceValue(value, _data.attribsval);
580 coerceValue(value, _data.counttype);
583 coerceValue(value, _data.countgroup);
586 coerceValue(value, _data.countcomp);
589 coerceValue(value, _data.countval);
592 coerceValue(value, _data.hasinputtype);
612 { doGetParmValue(idx, instance, value); }
614 { doGetParmValue(idx, instance, value); }
616 { doGetParmValue(idx, instance, value); }
618 { doGetParmValue(idx, instance, value); }
620 { doGetParmValue(idx, instance, value); }
622 { doGetParmValue(idx, instance, value); }
624 { doGetParmValue(idx, instance, value); }
626 { doGetParmValue(idx, instance, value); }
628 { doGetParmValue(idx, instance, value); }
630 { doGetParmValue(idx, instance, value); }
632 { doGetParmValue(idx, instance, value); }
634 template <
typename T>
641 if (idx.
size() != instance.
size()+1)
646 coerceValue(myMergeCondition, clampMinValue(0, clampMaxValue(3, value ) ));
649 coerceValue(myTestInput, clampMinValue(0, clampMaxValue(2, value ) ));
655 coerceValue(newsize, value);
656 if (newsize < 0) newsize = 0;
657 myTests.setSize(newsize);
663 myTests.setSizeIfNeeded(instance[0]+1);
664 auto && _data = myTests(instance[0]);
668 coerceValue(_data.enable, value);
671 coerceValue(_data.type, value);
674 coerceValue(_data.expr, value);
677 coerceValue(_data.attribtype, value);
680 coerceValue(_data.attribowner, value);
683 coerceValue(_data.attributes, value);
686 coerceValue(_data.attribvaltype, value);
689 coerceValue(_data.attribfloatcomp, value);
692 coerceValue(_data.attribstringcomp, value);
695 coerceValue(_data.attribval, value);
698 coerceValue(_data.attribsval, value);
701 coerceValue(_data.counttype, value);
704 coerceValue(_data.countgroup, value);
707 coerceValue(_data.countcomp, value);
710 coerceValue(_data.countval, value);
713 coerceValue(_data.hasinputtype, value);
724 { doSetParmValue(idx, instance, value); }
726 { doSetParmValue(idx, instance, value); }
728 { doSetParmValue(idx, instance, value); }
730 { doSetParmValue(idx, instance, value); }
732 { doSetParmValue(idx, instance, value); }
734 { doSetParmValue(idx, instance, value); }
736 { doSetParmValue(idx, instance, value); }
738 { doSetParmValue(idx, instance, value); }
740 { doSetParmValue(idx, instance, value); }
742 { doSetParmValue(idx, instance, value); }
744 { doSetParmValue(idx, instance, value); }
762 if (fieldnum.
size() < 1)
767 return "mergecondition";
771 if (fieldnum.
size() == 1)
782 return "attribtype#";
784 return "attribowner#";
786 return "attributes#";
788 return "attribvaltype#";
790 return "attribfloatcomp#";
792 return "attribstringcomp#";
796 return "attribsval#";
800 return "countgroup#";
806 return "hasinputtype#";
817 if (fieldnum.
size() < 1)
818 return PARM_UNSUPPORTED;
826 if (fieldnum.
size() == 1)
827 return PARM_MULTIPARM;
864 return PARM_UNSUPPORTED;
867 return PARM_UNSUPPORTED;
903 loadData(is, rampdata);
921 int typelen = colon - data.
buffer();
935 {
int64 iv =
v; UTwrite(os, &iv); }
937 { UTwrite<fpreal64>(os, &
v); }
939 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
941 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
942 UTwrite<fpreal64>(os, &v.
z()); }
944 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
945 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
957 if (s) s->save(ostr);
959 saveData(os, result);
966 ostr << s->getDataTypeToken();
971 saveData(os, result);
975 void save(std::ostream &os)
const
979 saveData(os, myMergeCondition);
980 saveData(os, myTestInput);
983 UTwrite(os, &length);
986 auto && _curentry = myTests(i);
988 saveData(os, _curentry.enable);
989 saveData(os, _curentry.type);
990 saveData(os, _curentry.expr);
991 saveData(os, _curentry.attribtype);
992 saveData(os, _curentry.attribowner);
993 saveData(os, _curentry.attributes);
994 saveData(os, _curentry.attribvaltype);
995 saveData(os, _curentry.attribfloatcomp);
996 saveData(os, _curentry.attribstringcomp);
997 saveData(os, _curentry.attribval);
998 saveData(os, _curentry.attribsval);
999 saveData(os, _curentry.counttype);
1000 saveData(os, _curentry.countgroup);
1001 saveData(os, _curentry.countcomp);
1002 saveData(os, _curentry.countval);
1003 saveData(os, _curentry.hasinputtype);
1019 loadData(is, myMergeCondition);
1020 loadData(is, myTestInput);
1023 is.
read(&length, 1);
1024 myTests.setSize(length);
1027 auto && _curentry = myTests(i);
1029 loadData(is, _curentry.enable);
1030 loadData(is, _curentry.type);
1031 loadData(is, _curentry.expr);
1032 loadData(is, _curentry.attribtype);
1033 loadData(is, _curentry.attribowner);
1034 loadData(is, _curentry.attributes);
1035 loadData(is, _curentry.attribvaltype);
1036 loadData(is, _curentry.attribfloatcomp);
1037 loadData(is, _curentry.attribstringcomp);
1038 loadData(is, _curentry.attribval);
1039 loadData(is, _curentry.attribsval);
1040 loadData(is, _curentry.counttype);
1041 loadData(is, _curentry.countgroup);
1042 loadData(is, _curentry.countcomp);
1043 loadData(is, _curentry.countval);
1044 loadData(is, _curentry.hasinputtype);
1057 if (!thissop)
return getMergeCondition();
1059 OP_Utils::evalOpParm(result, thissop,
"mergecondition", cookparms.
getCookTime(), 0);
1067 if (!thissop)
return getTestInput();
1069 OP_Utils::evalOpParm(result, thissop,
"testinput", cookparms.
getCookTime(), 0);
1077 if (!thissop)
return getTests().entries();
1079 OP_Utils::evalOpParm(result, thissop,
"tests", cookparms.
getCookTime(), 0);
1083 {
return opinstTests_enable(cookparms, &_idx); }
1087 if (!thissop)
return (myTests(_idx[0]).enable);
1089 _parmidx[1-1] = _idx[1-1] + 1;
1092 OP_Utils::evalOpParmInst(result, thissop,
"enable#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1096 {
return opinstTests_type(cookparms, &_idx); }
1100 if (!thissop)
return (myTests(_idx[0]).
type);
1102 _parmidx[1-1] = _idx[1-1] + 1;
1105 OP_Utils::evalOpParmInst(result, thissop,
"type#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1109 {
return opinstTests_expr(cookparms, &_idx); }
1113 if (!thissop)
return (myTests(_idx[0]).expr);
1115 _parmidx[1-1] = _idx[1-1] + 1;
1118 OP_Utils::evalOpParmInst(result, thissop,
"expr#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1122 {
return opinstTests_attribtype(cookparms, &_idx); }
1126 if (!thissop)
return (myTests(_idx[0]).attribtype);
1128 _parmidx[1-1] = _idx[1-1] + 1;
1131 OP_Utils::evalOpParmInst(result, thissop,
"attribtype#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1135 {
return opinstTests_attribowner(cookparms, &_idx); }
1139 if (!thissop)
return (myTests(_idx[0]).attribowner);
1141 _parmidx[1-1] = _idx[1-1] + 1;
1144 OP_Utils::evalOpParmInst(result, thissop,
"attribowner#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1148 {
return opinstTests_attributes(cookparms, &_idx); }
1152 if (!thissop)
return (myTests(_idx[0]).attributes);
1154 _parmidx[1-1] = _idx[1-1] + 1;
1157 OP_Utils::evalOpParmInst(result, thissop,
"attributes#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1161 {
return opinstTests_attribvaltype(cookparms, &_idx); }
1165 if (!thissop)
return (myTests(_idx[0]).attribvaltype);
1167 _parmidx[1-1] = _idx[1-1] + 1;
1170 OP_Utils::evalOpParmInst(result, thissop,
"attribvaltype#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1174 {
return opinstTests_attribfloatcomp(cookparms, &_idx); }
1178 if (!thissop)
return (myTests(_idx[0]).attribfloatcomp);
1180 _parmidx[1-1] = _idx[1-1] + 1;
1183 OP_Utils::evalOpParmInst(result, thissop,
"attribfloatcomp#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1187 {
return opinstTests_attribstringcomp(cookparms, &_idx); }
1191 if (!thissop)
return (myTests(_idx[0]).attribstringcomp);
1193 _parmidx[1-1] = _idx[1-1] + 1;
1196 OP_Utils::evalOpParmInst(result, thissop,
"attribstringcomp#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1200 {
return opinstTests_attribval(cookparms, &_idx); }
1204 if (!thissop)
return (myTests(_idx[0]).attribval);
1206 _parmidx[1-1] = _idx[1-1] + 1;
1209 OP_Utils::evalOpParmInst(result, thissop,
"attribval#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1213 {
return opinstTests_attribsval(cookparms, &_idx); }
1217 if (!thissop)
return (myTests(_idx[0]).attribsval);
1219 _parmidx[1-1] = _idx[1-1] + 1;
1222 OP_Utils::evalOpParmInst(result, thissop,
"attribsval#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1226 {
return opinstTests_counttype(cookparms, &_idx); }
1230 if (!thissop)
return (myTests(_idx[0]).counttype);
1232 _parmidx[1-1] = _idx[1-1] + 1;
1235 OP_Utils::evalOpParmInst(result, thissop,
"counttype#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1239 {
return opinstTests_countgroup(cookparms, &_idx); }
1243 if (!thissop)
return (myTests(_idx[0]).countgroup);
1245 _parmidx[1-1] = _idx[1-1] + 1;
1248 OP_Utils::evalOpParmInst(result, thissop,
"countgroup#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1252 {
return opinstTests_countcomp(cookparms, &_idx); }
1256 if (!thissop)
return (myTests(_idx[0]).countcomp);
1258 _parmidx[1-1] = _idx[1-1] + 1;
1261 OP_Utils::evalOpParmInst(result, thissop,
"countcomp#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1265 {
return opinstTests_countval(cookparms, &_idx); }
1269 if (!thissop)
return (myTests(_idx[0]).countval);
1271 _parmidx[1-1] = _idx[1-1] + 1;
1274 OP_Utils::evalOpParmInst(result, thissop,
"countval#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1278 {
return opinstTests_hasinputtype(cookparms, &_idx); }
1282 if (!thissop)
return (myTests(_idx[0]).hasinputtype);
1284 _parmidx[1-1] = _idx[1-1] + 1;
1287 OP_Utils::evalOpParmInst(result, thissop,
"hasinputtype#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1293 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
GLsizei const GLfloat * value
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_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
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
GLint GLint GLsizei GLint GLenum GLenum type
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
virtual UT_StringHolder baseGetSignature() const
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
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
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