23 namespace SOP_CacheIfEnums
34 using namespace UT::Literal;
51 using namespace UT::Literal;
68 using namespace UT::Literal;
85 using namespace UT::Literal;
128 input_checkpointattribs =
false;
129 input_pointattribs =
""_UTsh;
130 input_checkvertexattribs =
false;
131 input_vertexattribs =
""_UTsh;
132 input_checkprimitiveattribs =
false;
133 input_primitiveattribs =
""_UTsh;
134 input_checkdetailattribs =
false;
135 input_detailattribs =
""_UTsh;
136 input_checkpointgroups =
false;
137 input_pointgroups =
""_UTsh;
138 input_checkvertexgroups =
false;
139 input_vertexgroups =
""_UTsh;
140 input_checkprimitivegroups =
false;
141 input_primitivegroups =
""_UTsh;
142 input_checkedgegroups =
false;
143 input_edgegroups =
""_UTsh;
144 input_checkdetailid =
false;
145 input_checkprimitivesid =
true;
146 input_checktopology =
true;
147 input_checkchangecount =
false;
189 for (
int i = 0; i < list.
entries(); i++)
195 buf.
appendSprintf(
"%s", (list(i).input_enable) ?
"true" :
"false");
197 buf.
appendSprintf(
"%s", (list(i).input_checkpointattribs) ?
"true" :
"false");
201 buf.
appendSprintf(
"%s", (list(i).input_checkvertexattribs) ?
"true" :
"false");
205 buf.
appendSprintf(
"%s", (list(i).input_checkprimitiveattribs) ?
"true" :
"false");
209 buf.
appendSprintf(
"%s", (list(i).input_checkdetailattribs) ?
"true" :
"false");
213 buf.
appendSprintf(
"%s", (list(i).input_checkpointgroups) ?
"true" :
"false");
217 buf.
appendSprintf(
"%s", (list(i).input_checkvertexgroups) ?
"true" :
"false");
221 buf.
appendSprintf(
"%s", (list(i).input_checkprimitivegroups) ?
"true" :
"false");
225 buf.
appendSprintf(
"%s", (list(i).input_checkedgegroups) ?
"true" :
"false");
229 buf.
appendSprintf(
"%s", (list(i).input_checkdetailid) ?
"true" :
"false");
231 buf.
appendSprintf(
"%s", (list(i).input_checkprimitivesid) ?
"true" :
"false");
233 buf.
appendSprintf(
"%s", (list(i).input_checktopology) ?
"true" :
"false");
235 buf.
appendSprintf(
"%s", (list(i).input_checkchangecount) ?
"true" :
"false");
258 parm_nodepath =
""_UTsh;
259 parm_parmfilter =
"*"_UTsh;
260 parm_expandmultiparms =
true;
261 parm_groupfilter =
""_UTsh;
291 for (
int i = 0; i < list.
entries(); i++)
297 buf.
appendSprintf(
"%s", (list(i).parm_enable) ?
"true" :
"false");
303 buf.
appendSprintf(
"%s", (list(i).parm_expandmultiparms) ?
"true" :
"false");
335 expr_strexpr =
""_UTsh;
362 for (
int i = 0; i < list.
entries(); i++)
368 buf.
appendSprintf(
"%s", (list(i).expr_enable) ?
"true" :
"false");
390 myCheckUpstream =
false;
391 myOutputAttrib =
false;
392 myCheckAttrib =
false;
393 myAttribName =
""_UTsh;
407 if (myCheckUpstream != src.myCheckUpstream)
return false;
408 if (myOutputAttrib != src.myOutputAttrib)
return false;
409 if (myCheckAttrib != src.myCheckAttrib)
return false;
410 if (myAttribName != src.myAttribName)
return false;
411 if (myNumInputs != src.myNumInputs)
return false;
412 if (myCheckGroups != src.myCheckGroups)
return false;
413 if (myNumPatterns != src.myNumPatterns)
return false;
414 if (myNumExpressions != src.myNumExpressions)
return false;
431 myCheckUpstream =
false;
433 graph->
evalOpParm(myCheckUpstream, nodeidx,
"checkupstream", time, 0);
434 myOutputAttrib =
false;
436 graph->
evalOpParm(myOutputAttrib, nodeidx,
"outputattrib", time, 0);
437 myCheckAttrib =
false;
439 graph->
evalOpParm(myCheckAttrib, nodeidx,
"checkattrib", time, 0);
440 myAttribName =
""_UTsh;
442 graph->
evalOpParm(myAttribName, nodeidx,
"attribname", time, 0);
446 graph->
evalOpParm(length, nodeidx,
"numinputs", time, 0);
447 if (length < 0) length = 0;
448 myNumInputs.setSize(length);
455 auto && _curentry = myNumInputs(i);
457 _curentry.input_enable =
true;
459 graph->
evalOpParmInst(_curentry.input_enable, nodeidx,
"input_enable#", parmidx, offsets, time, 0, 2-1);
460 _curentry.input_checkpointattribs =
false;
462 graph->
evalOpParmInst(_curentry.input_checkpointattribs, nodeidx,
"input_checkpointattribs#", parmidx, offsets, time, 0, 2-1);
463 _curentry.input_pointattribs =
""_UTsh;
464 if (
true && ( (
true&&!(((_curentry.input_checkpointattribs==0)))) ) )
465 graph->
evalOpParmInst(_curentry.input_pointattribs, nodeidx,
"input_pointattribs#", parmidx, offsets, time, 0, 2-1);
466 _curentry.input_checkvertexattribs =
false;
468 graph->
evalOpParmInst(_curentry.input_checkvertexattribs, nodeidx,
"input_checkvertexattribs#", parmidx, offsets, time, 0, 2-1);
469 _curentry.input_vertexattribs =
""_UTsh;
470 if (
true && ( (
true&&!(((_curentry.input_checkvertexattribs==0)))) ) )
471 graph->
evalOpParmInst(_curentry.input_vertexattribs, nodeidx,
"input_vertexattribs#", parmidx, offsets, time, 0, 2-1);
472 _curentry.input_checkprimitiveattribs =
false;
474 graph->
evalOpParmInst(_curentry.input_checkprimitiveattribs, nodeidx,
"input_checkprimitiveattribs#", parmidx, offsets, time, 0, 2-1);
475 _curentry.input_primitiveattribs =
""_UTsh;
476 if (
true && ( (
true&&!(((_curentry.input_checkprimitiveattribs==0)))) ) )
477 graph->
evalOpParmInst(_curentry.input_primitiveattribs, nodeidx,
"input_primitiveattribs#", parmidx, offsets, time, 0, 2-1);
478 _curentry.input_checkdetailattribs =
false;
480 graph->
evalOpParmInst(_curentry.input_checkdetailattribs, nodeidx,
"input_checkdetailattribs#", parmidx, offsets, time, 0, 2-1);
481 _curentry.input_detailattribs =
""_UTsh;
482 if (
true && ( (
true&&!(((_curentry.input_checkdetailattribs==0)))) ) )
483 graph->
evalOpParmInst(_curentry.input_detailattribs, nodeidx,
"input_detailattribs#", parmidx, offsets, time, 0, 2-1);
484 _curentry.input_checkpointgroups =
false;
486 graph->
evalOpParmInst(_curentry.input_checkpointgroups, nodeidx,
"input_checkpointgroups#", parmidx, offsets, time, 0, 2-1);
487 _curentry.input_pointgroups =
""_UTsh;
488 if (
true && ( (
true&&!(((_curentry.input_checkpointgroups==0)))) ) )
489 graph->
evalOpParmInst(_curentry.input_pointgroups, nodeidx,
"input_pointgroups#", parmidx, offsets, time, 0, 2-1);
490 _curentry.input_checkvertexgroups =
false;
492 graph->
evalOpParmInst(_curentry.input_checkvertexgroups, nodeidx,
"input_checkvertexgroups#", parmidx, offsets, time, 0, 2-1);
493 _curentry.input_vertexgroups =
""_UTsh;
494 if (
true && ( (
true&&!(((_curentry.input_checkvertexgroups==0)))) ) )
495 graph->
evalOpParmInst(_curentry.input_vertexgroups, nodeidx,
"input_vertexgroups#", parmidx, offsets, time, 0, 2-1);
496 _curentry.input_checkprimitivegroups =
false;
498 graph->
evalOpParmInst(_curentry.input_checkprimitivegroups, nodeidx,
"input_checkprimitivegroups#", parmidx, offsets, time, 0, 2-1);
499 _curentry.input_primitivegroups =
""_UTsh;
500 if (
true && ( (
true&&!(((_curentry.input_checkprimitivegroups==0)))) ) )
501 graph->
evalOpParmInst(_curentry.input_primitivegroups, nodeidx,
"input_primitivegroups#", parmidx, offsets, time, 0, 2-1);
502 _curentry.input_checkedgegroups =
false;
504 graph->
evalOpParmInst(_curentry.input_checkedgegroups, nodeidx,
"input_checkedgegroups#", parmidx, offsets, time, 0, 2-1);
505 _curentry.input_edgegroups =
""_UTsh;
506 if (
true && ( (
true&&!(((_curentry.input_checkedgegroups==0)))) ) )
507 graph->
evalOpParmInst(_curentry.input_edgegroups, nodeidx,
"input_edgegroups#", parmidx, offsets, time, 0, 2-1);
508 _curentry.input_checkdetailid =
false;
510 graph->
evalOpParmInst(_curentry.input_checkdetailid, nodeidx,
"input_checkdetailid#", parmidx, offsets, time, 0, 2-1);
511 _curentry.input_checkprimitivesid =
true;
513 graph->
evalOpParmInst(_curentry.input_checkprimitivesid, nodeidx,
"input_checkprimitivesid#", parmidx, offsets, time, 0, 2-1);
514 _curentry.input_checktopology =
true;
516 graph->
evalOpParmInst(_curentry.input_checktopology, nodeidx,
"input_checktopology#", parmidx, offsets, time, 0, 2-1);
517 _curentry.input_checkchangecount =
false;
519 graph->
evalOpParmInst(_curentry.input_checkchangecount, nodeidx,
"input_checkchangecount#", parmidx, offsets, time, 0, 2-1);
527 graph->
evalOpParm(myCheckGroups, nodeidx,
"checkgroups", time, 0);
531 graph->
evalOpParm(length, nodeidx,
"numpatterns", time, 0);
532 if (length < 0) length = 0;
533 myNumPatterns.setSize(length);
540 auto && _curentry = myNumPatterns(i);
542 _curentry.parm_enable =
true;
544 graph->
evalOpParmInst(_curentry.parm_enable, nodeidx,
"parm_enable#", parmidx, offsets, time, 0, 2-1);
545 _curentry.parm_nodepath =
""_UTsh;
546 if (
true && ( (
true&&!(((_curentry.parm_enable==0)))) ) )
547 graph->
evalOpParmInst(_curentry.parm_nodepath, nodeidx,
"parm_nodepath#", parmidx, offsets, time, 0, 2-1);
548 _curentry.parm_parmfilter =
"*"_UTsh;
549 if (
true && ( (
true&&!(((_curentry.parm_enable==0)))) ) )
550 graph->
evalOpParmInst(_curentry.parm_parmfilter, nodeidx,
"parm_parmfilter#", parmidx, offsets, time, 0, 2-1);
551 _curentry.parm_expandmultiparms =
true;
552 if (
true && ( (
true&&!(((_curentry.parm_enable==0)))) ) )
553 graph->
evalOpParmInst(_curentry.parm_expandmultiparms, nodeidx,
"parm_expandmultiparms#", parmidx, offsets, time, 0, 2-1);
554 _curentry.parm_groupfilter =
""_UTsh;
555 if (
true && ( (
true&&!(((_curentry.parm_enable==0)))) ) )
556 graph->
evalOpParmInst(_curentry.parm_groupfilter, nodeidx,
"parm_groupfilter#", parmidx, offsets, time, 0, 2-1);
557 _curentry.parm_grouptype = 1;
558 if (
true && ( (
true&&!(((_curentry.parm_enable==0)))) ) )
559 graph->
evalOpParmInst(_curentry.parm_grouptype, nodeidx,
"parm_grouptype#", parmidx, offsets, time, 0, 2-1);
560 _curentry.parm_oninput = 0;
561 if (
true && ( (
true&&!(((_curentry.parm_enable==0)))) ) )
562 graph->
evalOpParmInst(_curentry.parm_oninput, nodeidx,
"parm_oninput#", parmidx, offsets, time, 0, 2-1);
567 myNumPatterns.clear();
571 graph->
evalOpParm(length, nodeidx,
"numexpressions", time, 0);
572 if (length < 0) length = 0;
573 myNumExpressions.setSize(length);
580 auto && _curentry = myNumExpressions(i);
582 _curentry.expr_enable =
true;
584 graph->
evalOpParmInst(_curentry.expr_enable, nodeidx,
"expr_enable#", parmidx, offsets, time, 0, 2-1);
585 _curentry.expr_cachewhen = 0;
586 if (
true && ( (
true&&!(((_curentry.expr_enable==0)))) ) )
587 graph->
evalOpParmInst(_curentry.expr_cachewhen, nodeidx,
"expr_cachewhen#", parmidx, offsets, time, 0, 2-1);
588 _curentry.expr_exprval = 0;
589 if (
true && ( (
true&&!(((_curentry.expr_enable==0))||((_curentry.expr_cachewhen!=0)))) ) )
590 graph->
evalOpParmInst(_curentry.expr_exprval, nodeidx,
"expr_exprval#", parmidx, offsets, time, 0, 2-1);
591 _curentry.expr_exprtype = 0;
592 if (
true && ( (
true&&!(((_curentry.expr_enable==0))||((_curentry.expr_cachewhen!=1)))) ) )
593 graph->
evalOpParmInst(_curentry.expr_exprtype, nodeidx,
"expr_exprtype#", parmidx, offsets, time, 0, 2-1);
594 _curentry.expr_numexpr = 0;
595 if (
true && ( (
true&&!(((_curentry.expr_enable==0))||((_curentry.expr_cachewhen!=1))||((_curentry.expr_exprtype!=0)))) ) )
596 graph->
evalOpParmInst(_curentry.expr_numexpr, nodeidx,
"expr_numexpr#", parmidx, offsets, time, 0, 2-1);
597 _curentry.expr_strexpr =
""_UTsh;
598 if (
true && ( (
true&&!(((_curentry.expr_enable==0))||((_curentry.expr_cachewhen!=1))||((_curentry.expr_exprtype!=1)))) ) )
599 graph->
evalOpParmInst(_curentry.expr_strexpr, nodeidx,
"expr_strexpr#", parmidx, offsets, time, 0, 2-1);
604 myNumExpressions.clear();
620 template <
typename T>
627 if (idx.
size() != instance.
size()+1)
632 coerceValue(value, myCheckUpstream);
635 coerceValue(value, myOutputAttrib);
638 coerceValue(value, myCheckAttrib);
641 coerceValue(value, myAttribName);
645 coerceValue(value, myNumInputs.entries());
646 else if (instance[0] < myNumInputs.entries())
648 auto && _data = myNumInputs(instance[0]);
652 coerceValue(value, _data.input_enable);
655 coerceValue(value, _data.input_checkpointattribs);
658 coerceValue(value, _data.input_pointattribs);
661 coerceValue(value, _data.input_checkvertexattribs);
664 coerceValue(value, _data.input_vertexattribs);
667 coerceValue(value, _data.input_checkprimitiveattribs);
670 coerceValue(value, _data.input_primitiveattribs);
673 coerceValue(value, _data.input_checkdetailattribs);
676 coerceValue(value, _data.input_detailattribs);
679 coerceValue(value, _data.input_checkpointgroups);
682 coerceValue(value, _data.input_pointgroups);
685 coerceValue(value, _data.input_checkvertexgroups);
688 coerceValue(value, _data.input_vertexgroups);
691 coerceValue(value, _data.input_checkprimitivegroups);
694 coerceValue(value, _data.input_primitivegroups);
697 coerceValue(value, _data.input_checkedgegroups);
700 coerceValue(value, _data.input_edgegroups);
703 coerceValue(value, _data.input_checkdetailid);
706 coerceValue(value, _data.input_checkprimitivesid);
709 coerceValue(value, _data.input_checktopology);
712 coerceValue(value, _data.input_checkchangecount);
719 coerceValue(value, myCheckGroups);
723 coerceValue(value, myNumPatterns.entries());
724 else if (instance[0] < myNumPatterns.entries())
726 auto && _data = myNumPatterns(instance[0]);
730 coerceValue(value, _data.parm_enable);
733 coerceValue(value, _data.parm_nodepath);
736 coerceValue(value, _data.parm_parmfilter);
739 coerceValue(value, _data.parm_expandmultiparms);
742 coerceValue(value, _data.parm_groupfilter);
745 coerceValue(value, _data.parm_grouptype);
748 coerceValue(value, _data.parm_oninput);
756 coerceValue(value, myNumExpressions.entries());
757 else if (instance[0] < myNumExpressions.entries())
759 auto && _data = myNumExpressions(instance[0]);
763 coerceValue(value, _data.expr_enable);
766 coerceValue(value, _data.expr_cachewhen);
769 coerceValue(value, _data.expr_exprval);
772 coerceValue(value, _data.expr_exprtype);
775 coerceValue(value, _data.expr_numexpr);
778 coerceValue(value, _data.expr_strexpr);
798 { doGetParmValue(idx, instance, value); }
800 { doGetParmValue(idx, instance, value); }
802 { doGetParmValue(idx, instance, value); }
804 { doGetParmValue(idx, instance, value); }
806 { doGetParmValue(idx, instance, value); }
808 { doGetParmValue(idx, instance, value); }
810 { doGetParmValue(idx, instance, value); }
812 { doGetParmValue(idx, instance, value); }
814 { doGetParmValue(idx, instance, value); }
816 { doGetParmValue(idx, instance, value); }
818 { doGetParmValue(idx, instance, value); }
820 template <
typename T>
827 if (idx.
size() != instance.
size()+1)
832 coerceValue(myCheckUpstream, ( ( value ) ));
835 coerceValue(myOutputAttrib, ( ( value ) ));
838 coerceValue(myCheckAttrib, ( ( value ) ));
841 coerceValue(myAttribName, ( ( value ) ));
847 coerceValue(newsize, value);
848 if (newsize < 0) newsize = 0;
849 myNumInputs.setSize(newsize);
855 myNumInputs.setSizeIfNeeded(instance[0]+1);
856 auto && _data = myNumInputs(instance[0]);
860 coerceValue(_data.input_enable, value);
863 coerceValue(_data.input_checkpointattribs, value);
866 coerceValue(_data.input_pointattribs, value);
869 coerceValue(_data.input_checkvertexattribs, value);
872 coerceValue(_data.input_vertexattribs, value);
875 coerceValue(_data.input_checkprimitiveattribs, value);
878 coerceValue(_data.input_primitiveattribs, value);
881 coerceValue(_data.input_checkdetailattribs, value);
884 coerceValue(_data.input_detailattribs, value);
887 coerceValue(_data.input_checkpointgroups, value);
890 coerceValue(_data.input_pointgroups, value);
893 coerceValue(_data.input_checkvertexgroups, value);
896 coerceValue(_data.input_vertexgroups, value);
899 coerceValue(_data.input_checkprimitivegroups, value);
902 coerceValue(_data.input_primitivegroups, value);
905 coerceValue(_data.input_checkedgegroups, value);
908 coerceValue(_data.input_edgegroups, value);
911 coerceValue(_data.input_checkdetailid, value);
914 coerceValue(_data.input_checkprimitivesid, value);
917 coerceValue(_data.input_checktopology, value);
920 coerceValue(_data.input_checkchangecount, value);
927 coerceValue(myCheckGroups, clampMinValue(0, clampMaxValue(1, value ) ));
933 coerceValue(newsize, value);
934 if (newsize < 0) newsize = 0;
935 myNumPatterns.setSize(newsize);
941 myNumPatterns.setSizeIfNeeded(instance[0]+1);
942 auto && _data = myNumPatterns(instance[0]);
946 coerceValue(_data.parm_enable, value);
949 coerceValue(_data.parm_nodepath, value);
952 coerceValue(_data.parm_parmfilter, value);
955 coerceValue(_data.parm_expandmultiparms, value);
958 coerceValue(_data.parm_groupfilter, value);
961 coerceValue(_data.parm_grouptype, value);
964 coerceValue(_data.parm_oninput, value);
974 coerceValue(newsize, value);
975 if (newsize < 0) newsize = 0;
976 myNumExpressions.setSize(newsize);
982 myNumExpressions.setSizeIfNeeded(instance[0]+1);
983 auto && _data = myNumExpressions(instance[0]);
987 coerceValue(_data.expr_enable, value);
990 coerceValue(_data.expr_cachewhen, value);
993 coerceValue(_data.expr_exprval, value);
996 coerceValue(_data.expr_exprtype, value);
999 coerceValue(_data.expr_numexpr, value);
1002 coerceValue(_data.expr_strexpr, value);
1013 { doSetParmValue(idx, instance, value); }
1015 { doSetParmValue(idx, instance, value); }
1017 { doSetParmValue(idx, instance, value); }
1019 { doSetParmValue(idx, instance, value); }
1021 { doSetParmValue(idx, instance, value); }
1023 { doSetParmValue(idx, instance, value); }
1025 { doSetParmValue(idx, instance, value); }
1027 { doSetParmValue(idx, instance, value); }
1029 { doSetParmValue(idx, instance, value); }
1031 { doSetParmValue(idx, instance, value); }
1033 { doSetParmValue(idx, instance, value); }
1037 if (idx.
size() == 0)
1055 if (fieldnum.
size() < 1)
1057 switch (fieldnum[0])
1060 return "checkupstream";
1062 return "outputattrib";
1064 return "checkattrib";
1066 return "attribname";
1068 if (fieldnum.
size() == 1)
1070 switch (fieldnum[1])
1073 return "input_enable#";
1075 return "input_checkpointattribs#";
1077 return "input_pointattribs#";
1079 return "input_checkvertexattribs#";
1081 return "input_vertexattribs#";
1083 return "input_checkprimitiveattribs#";
1085 return "input_primitiveattribs#";
1087 return "input_checkdetailattribs#";
1089 return "input_detailattribs#";
1091 return "input_checkpointgroups#";
1093 return "input_pointgroups#";
1095 return "input_checkvertexgroups#";
1097 return "input_vertexgroups#";
1099 return "input_checkprimitivegroups#";
1101 return "input_primitivegroups#";
1103 return "input_checkedgegroups#";
1105 return "input_edgegroups#";
1107 return "input_checkdetailid#";
1109 return "input_checkprimitivesid#";
1111 return "input_checktopology#";
1113 return "input_checkchangecount#";
1118 return "checkgroups";
1120 if (fieldnum.
size() == 1)
1121 return "numpatterns";
1122 switch (fieldnum[1])
1125 return "parm_enable#";
1127 return "parm_nodepath#";
1129 return "parm_parmfilter#";
1131 return "parm_expandmultiparms#";
1133 return "parm_groupfilter#";
1135 return "parm_grouptype#";
1137 return "parm_oninput#";
1142 if (fieldnum.
size() == 1)
1143 return "numexpressions";
1144 switch (fieldnum[1])
1147 return "expr_enable#";
1149 return "expr_cachewhen#";
1151 return "expr_exprval#";
1153 return "expr_exprtype#";
1155 return "expr_numexpr#";
1157 return "expr_strexpr#";
1168 if (fieldnum.
size() < 1)
1169 return PARM_UNSUPPORTED;
1170 switch (fieldnum[0])
1173 return PARM_INTEGER;
1175 return PARM_INTEGER;
1177 return PARM_INTEGER;
1181 if (fieldnum.
size() == 1)
1182 return PARM_MULTIPARM;
1183 switch (fieldnum[1])
1186 return PARM_INTEGER;
1188 return PARM_INTEGER;
1192 return PARM_INTEGER;
1196 return PARM_INTEGER;
1200 return PARM_INTEGER;
1204 return PARM_INTEGER;
1208 return PARM_INTEGER;
1212 return PARM_INTEGER;
1216 return PARM_INTEGER;
1220 return PARM_INTEGER;
1222 return PARM_INTEGER;
1224 return PARM_INTEGER;
1226 return PARM_INTEGER;
1229 return PARM_UNSUPPORTED;
1231 return PARM_INTEGER;
1233 if (fieldnum.
size() == 1)
1234 return PARM_MULTIPARM;
1235 switch (fieldnum[1])
1238 return PARM_INTEGER;
1244 return PARM_INTEGER;
1248 return PARM_INTEGER;
1250 return PARM_INTEGER;
1253 return PARM_UNSUPPORTED;
1255 if (fieldnum.
size() == 1)
1256 return PARM_MULTIPARM;
1257 switch (fieldnum[1])
1260 return PARM_INTEGER;
1262 return PARM_INTEGER;
1264 return PARM_INTEGER;
1266 return PARM_INTEGER;
1273 return PARM_UNSUPPORTED;
1276 return PARM_UNSUPPORTED;
1281 { is.
bread(&v, 1); }
1312 loadData(is, rampdata);
1330 int typelen = colon - data.
buffer();
1342 { UTwrite(os, &v); }
1344 {
int64 iv =
v; UTwrite(os, &iv); }
1346 { UTwrite<fpreal64>(os, &
v); }
1348 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
1350 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1351 UTwrite<fpreal64>(os, &v.
z()); }
1353 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1354 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
1366 if (s) s->save(ostr);
1367 result = ostr.
str();
1368 saveData(os, result);
1375 ostr << s->getDataTypeToken();
1377 s->saveBinary(ostr);
1379 result = ostr.
str();
1380 saveData(os, result);
1388 saveData(os, myCheckUpstream);
1389 saveData(os, myOutputAttrib);
1390 saveData(os, myCheckAttrib);
1391 saveData(os, myAttribName);
1394 UTwrite(os, &length);
1397 auto && _curentry = myNumInputs(i);
1399 saveData(os, _curentry.input_enable);
1400 saveData(os, _curentry.input_checkpointattribs);
1401 saveData(os, _curentry.input_pointattribs);
1402 saveData(os, _curentry.input_checkvertexattribs);
1403 saveData(os, _curentry.input_vertexattribs);
1404 saveData(os, _curentry.input_checkprimitiveattribs);
1405 saveData(os, _curentry.input_primitiveattribs);
1406 saveData(os, _curentry.input_checkdetailattribs);
1407 saveData(os, _curentry.input_detailattribs);
1408 saveData(os, _curentry.input_checkpointgroups);
1409 saveData(os, _curentry.input_pointgroups);
1410 saveData(os, _curentry.input_checkvertexgroups);
1411 saveData(os, _curentry.input_vertexgroups);
1412 saveData(os, _curentry.input_checkprimitivegroups);
1413 saveData(os, _curentry.input_primitivegroups);
1414 saveData(os, _curentry.input_checkedgegroups);
1415 saveData(os, _curentry.input_edgegroups);
1416 saveData(os, _curentry.input_checkdetailid);
1417 saveData(os, _curentry.input_checkprimitivesid);
1418 saveData(os, _curentry.input_checktopology);
1419 saveData(os, _curentry.input_checkchangecount);
1423 saveData(os, myCheckGroups);
1426 UTwrite(os, &length);
1429 auto && _curentry = myNumPatterns(i);
1431 saveData(os, _curentry.parm_enable);
1432 saveData(os, _curentry.parm_nodepath);
1433 saveData(os, _curentry.parm_parmfilter);
1434 saveData(os, _curentry.parm_expandmultiparms);
1435 saveData(os, _curentry.parm_groupfilter);
1436 saveData(os, _curentry.parm_grouptype);
1437 saveData(os, _curentry.parm_oninput);
1443 UTwrite(os, &length);
1446 auto && _curentry = myNumExpressions(i);
1448 saveData(os, _curentry.expr_enable);
1449 saveData(os, _curentry.expr_cachewhen);
1450 saveData(os, _curentry.expr_exprval);
1451 saveData(os, _curentry.expr_exprtype);
1452 saveData(os, _curentry.expr_numexpr);
1453 saveData(os, _curentry.expr_strexpr);
1469 loadData(is, myCheckUpstream);
1470 loadData(is, myOutputAttrib);
1471 loadData(is, myCheckAttrib);
1472 loadData(is, myAttribName);
1475 is.
read(&length, 1);
1476 myNumInputs.setSize(length);
1479 auto && _curentry = myNumInputs(i);
1481 loadData(is, _curentry.input_enable);
1482 loadData(is, _curentry.input_checkpointattribs);
1483 loadData(is, _curentry.input_pointattribs);
1484 loadData(is, _curentry.input_checkvertexattribs);
1485 loadData(is, _curentry.input_vertexattribs);
1486 loadData(is, _curentry.input_checkprimitiveattribs);
1487 loadData(is, _curentry.input_primitiveattribs);
1488 loadData(is, _curentry.input_checkdetailattribs);
1489 loadData(is, _curentry.input_detailattribs);
1490 loadData(is, _curentry.input_checkpointgroups);
1491 loadData(is, _curentry.input_pointgroups);
1492 loadData(is, _curentry.input_checkvertexgroups);
1493 loadData(is, _curentry.input_vertexgroups);
1494 loadData(is, _curentry.input_checkprimitivegroups);
1495 loadData(is, _curentry.input_primitivegroups);
1496 loadData(is, _curentry.input_checkedgegroups);
1497 loadData(is, _curentry.input_edgegroups);
1498 loadData(is, _curentry.input_checkdetailid);
1499 loadData(is, _curentry.input_checkprimitivesid);
1500 loadData(is, _curentry.input_checktopology);
1501 loadData(is, _curentry.input_checkchangecount);
1505 loadData(is, myCheckGroups);
1508 is.
read(&length, 1);
1509 myNumPatterns.setSize(length);
1512 auto && _curentry = myNumPatterns(i);
1514 loadData(is, _curentry.parm_enable);
1515 loadData(is, _curentry.parm_nodepath);
1516 loadData(is, _curentry.parm_parmfilter);
1517 loadData(is, _curentry.parm_expandmultiparms);
1518 loadData(is, _curentry.parm_groupfilter);
1519 loadData(is, _curentry.parm_grouptype);
1520 loadData(is, _curentry.parm_oninput);
1526 is.
read(&length, 1);
1527 myNumExpressions.setSize(length);
1530 auto && _curentry = myNumExpressions(i);
1532 loadData(is, _curentry.expr_enable);
1533 loadData(is, _curentry.expr_cachewhen);
1534 loadData(is, _curentry.expr_exprval);
1535 loadData(is, _curentry.expr_exprtype);
1536 loadData(is, _curentry.expr_numexpr);
1537 loadData(is, _curentry.expr_strexpr);
1550 if (!thissop)
return getCheckUpstream();
1552 OP_Utils::evalOpParm(result, thissop,
"checkupstream", cookparms.
getCookTime(), 0);
1560 if (!thissop)
return getOutputAttrib();
1562 OP_Utils::evalOpParm(result, thissop,
"outputattrib", cookparms.
getCookTime(), 0);
1570 if (!thissop)
return getCheckAttrib();
1572 OP_Utils::evalOpParm(result, thissop,
"checkattrib", cookparms.
getCookTime(), 0);
1580 if (!thissop)
return getAttribName();
1582 OP_Utils::evalOpParm(result, thissop,
"attribname", cookparms.
getCookTime(), 0);
1590 if (!thissop)
return getNumInputs().entries();
1592 OP_Utils::evalOpParm(result, thissop,
"numinputs", cookparms.
getCookTime(), 0);
1596 {
return opinstNumInputs_input_enable(cookparms, &_idx); }
1600 if (!thissop)
return (myNumInputs(_idx[0]).input_enable);
1602 _parmidx[1-1] = _idx[1-1] + 1;
1605 OP_Utils::evalOpParmInst(result, thissop,
"input_enable#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1609 {
return opinstNumInputs_input_checkpointattribs(cookparms, &_idx); }
1613 if (!thissop)
return (myNumInputs(_idx[0]).input_checkpointattribs);
1615 _parmidx[1-1] = _idx[1-1] + 1;
1618 OP_Utils::evalOpParmInst(result, thissop,
"input_checkpointattribs#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1622 {
return opinstNumInputs_input_pointattribs(cookparms, &_idx); }
1626 if (!thissop)
return (myNumInputs(_idx[0]).input_pointattribs);
1628 _parmidx[1-1] = _idx[1-1] + 1;
1631 OP_Utils::evalOpParmInst(result, thissop,
"input_pointattribs#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1635 {
return opinstNumInputs_input_checkvertexattribs(cookparms, &_idx); }
1639 if (!thissop)
return (myNumInputs(_idx[0]).input_checkvertexattribs);
1641 _parmidx[1-1] = _idx[1-1] + 1;
1644 OP_Utils::evalOpParmInst(result, thissop,
"input_checkvertexattribs#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1648 {
return opinstNumInputs_input_vertexattribs(cookparms, &_idx); }
1652 if (!thissop)
return (myNumInputs(_idx[0]).input_vertexattribs);
1654 _parmidx[1-1] = _idx[1-1] + 1;
1657 OP_Utils::evalOpParmInst(result, thissop,
"input_vertexattribs#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1661 {
return opinstNumInputs_input_checkprimitiveattribs(cookparms, &_idx); }
1665 if (!thissop)
return (myNumInputs(_idx[0]).input_checkprimitiveattribs);
1667 _parmidx[1-1] = _idx[1-1] + 1;
1670 OP_Utils::evalOpParmInst(result, thissop,
"input_checkprimitiveattribs#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1674 {
return opinstNumInputs_input_primitiveattribs(cookparms, &_idx); }
1678 if (!thissop)
return (myNumInputs(_idx[0]).input_primitiveattribs);
1680 _parmidx[1-1] = _idx[1-1] + 1;
1683 OP_Utils::evalOpParmInst(result, thissop,
"input_primitiveattribs#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1687 {
return opinstNumInputs_input_checkdetailattribs(cookparms, &_idx); }
1691 if (!thissop)
return (myNumInputs(_idx[0]).input_checkdetailattribs);
1693 _parmidx[1-1] = _idx[1-1] + 1;
1696 OP_Utils::evalOpParmInst(result, thissop,
"input_checkdetailattribs#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1700 {
return opinstNumInputs_input_detailattribs(cookparms, &_idx); }
1704 if (!thissop)
return (myNumInputs(_idx[0]).input_detailattribs);
1706 _parmidx[1-1] = _idx[1-1] + 1;
1709 OP_Utils::evalOpParmInst(result, thissop,
"input_detailattribs#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1713 {
return opinstNumInputs_input_checkpointgroups(cookparms, &_idx); }
1717 if (!thissop)
return (myNumInputs(_idx[0]).input_checkpointgroups);
1719 _parmidx[1-1] = _idx[1-1] + 1;
1722 OP_Utils::evalOpParmInst(result, thissop,
"input_checkpointgroups#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1726 {
return opinstNumInputs_input_pointgroups(cookparms, &_idx); }
1730 if (!thissop)
return (myNumInputs(_idx[0]).input_pointgroups);
1732 _parmidx[1-1] = _idx[1-1] + 1;
1735 OP_Utils::evalOpParmInst(result, thissop,
"input_pointgroups#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1739 {
return opinstNumInputs_input_checkvertexgroups(cookparms, &_idx); }
1743 if (!thissop)
return (myNumInputs(_idx[0]).input_checkvertexgroups);
1745 _parmidx[1-1] = _idx[1-1] + 1;
1748 OP_Utils::evalOpParmInst(result, thissop,
"input_checkvertexgroups#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1752 {
return opinstNumInputs_input_vertexgroups(cookparms, &_idx); }
1756 if (!thissop)
return (myNumInputs(_idx[0]).input_vertexgroups);
1758 _parmidx[1-1] = _idx[1-1] + 1;
1761 OP_Utils::evalOpParmInst(result, thissop,
"input_vertexgroups#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1765 {
return opinstNumInputs_input_checkprimitivegroups(cookparms, &_idx); }
1769 if (!thissop)
return (myNumInputs(_idx[0]).input_checkprimitivegroups);
1771 _parmidx[1-1] = _idx[1-1] + 1;
1774 OP_Utils::evalOpParmInst(result, thissop,
"input_checkprimitivegroups#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1778 {
return opinstNumInputs_input_primitivegroups(cookparms, &_idx); }
1782 if (!thissop)
return (myNumInputs(_idx[0]).input_primitivegroups);
1784 _parmidx[1-1] = _idx[1-1] + 1;
1787 OP_Utils::evalOpParmInst(result, thissop,
"input_primitivegroups#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1791 {
return opinstNumInputs_input_checkedgegroups(cookparms, &_idx); }
1795 if (!thissop)
return (myNumInputs(_idx[0]).input_checkedgegroups);
1797 _parmidx[1-1] = _idx[1-1] + 1;
1800 OP_Utils::evalOpParmInst(result, thissop,
"input_checkedgegroups#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1804 {
return opinstNumInputs_input_edgegroups(cookparms, &_idx); }
1808 if (!thissop)
return (myNumInputs(_idx[0]).input_edgegroups);
1810 _parmidx[1-1] = _idx[1-1] + 1;
1813 OP_Utils::evalOpParmInst(result, thissop,
"input_edgegroups#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1817 {
return opinstNumInputs_input_checkdetailid(cookparms, &_idx); }
1821 if (!thissop)
return (myNumInputs(_idx[0]).input_checkdetailid);
1823 _parmidx[1-1] = _idx[1-1] + 1;
1826 OP_Utils::evalOpParmInst(result, thissop,
"input_checkdetailid#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1830 {
return opinstNumInputs_input_checkprimitivesid(cookparms, &_idx); }
1834 if (!thissop)
return (myNumInputs(_idx[0]).input_checkprimitivesid);
1836 _parmidx[1-1] = _idx[1-1] + 1;
1839 OP_Utils::evalOpParmInst(result, thissop,
"input_checkprimitivesid#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1843 {
return opinstNumInputs_input_checktopology(cookparms, &_idx); }
1847 if (!thissop)
return (myNumInputs(_idx[0]).input_checktopology);
1849 _parmidx[1-1] = _idx[1-1] + 1;
1852 OP_Utils::evalOpParmInst(result, thissop,
"input_checktopology#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1856 {
return opinstNumInputs_input_checkchangecount(cookparms, &_idx); }
1860 if (!thissop)
return (myNumInputs(_idx[0]).input_checkchangecount);
1862 _parmidx[1-1] = _idx[1-1] + 1;
1865 OP_Utils::evalOpParmInst(result, thissop,
"input_checkchangecount#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1874 if (!thissop)
return getCheckGroups();
1876 OP_Utils::evalOpParm(result, thissop,
"checkgroups", cookparms.
getCookTime(), 0);
1884 if (!thissop)
return getNumPatterns().entries();
1886 OP_Utils::evalOpParm(result, thissop,
"numpatterns", cookparms.
getCookTime(), 0);
1890 {
return opinstNumPatterns_parm_enable(cookparms, &_idx); }
1894 if (!thissop)
return (myNumPatterns(_idx[0]).parm_enable);
1896 _parmidx[1-1] = _idx[1-1] + 1;
1899 OP_Utils::evalOpParmInst(result, thissop,
"parm_enable#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1903 {
return opinstNumPatterns_parm_nodepath(cookparms, &_idx); }
1907 if (!thissop)
return (myNumPatterns(_idx[0]).parm_nodepath);
1909 _parmidx[1-1] = _idx[1-1] + 1;
1912 OP_Utils::evalOpParmInst(result, thissop,
"parm_nodepath#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1916 {
return opinstNumPatterns_parm_parmfilter(cookparms, &_idx); }
1920 if (!thissop)
return (myNumPatterns(_idx[0]).parm_parmfilter);
1922 _parmidx[1-1] = _idx[1-1] + 1;
1925 OP_Utils::evalOpParmInst(result, thissop,
"parm_parmfilter#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1929 {
return opinstNumPatterns_parm_expandmultiparms(cookparms, &_idx); }
1933 if (!thissop)
return (myNumPatterns(_idx[0]).parm_expandmultiparms);
1935 _parmidx[1-1] = _idx[1-1] + 1;
1938 OP_Utils::evalOpParmInst(result, thissop,
"parm_expandmultiparms#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1942 {
return opinstNumPatterns_parm_groupfilter(cookparms, &_idx); }
1946 if (!thissop)
return (myNumPatterns(_idx[0]).parm_groupfilter);
1948 _parmidx[1-1] = _idx[1-1] + 1;
1951 OP_Utils::evalOpParmInst(result, thissop,
"parm_groupfilter#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1955 {
return opinstNumPatterns_parm_grouptype(cookparms, &_idx); }
1959 if (!thissop)
return (myNumPatterns(_idx[0]).parm_grouptype);
1961 _parmidx[1-1] = _idx[1-1] + 1;
1964 OP_Utils::evalOpParmInst(result, thissop,
"parm_grouptype#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1968 {
return opinstNumPatterns_parm_oninput(cookparms, &_idx); }
1972 if (!thissop)
return (myNumPatterns(_idx[0]).parm_oninput);
1974 _parmidx[1-1] = _idx[1-1] + 1;
1977 OP_Utils::evalOpParmInst(result, thissop,
"parm_oninput#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1986 if (!thissop)
return getNumExpressions().entries();
1988 OP_Utils::evalOpParm(result, thissop,
"numexpressions", cookparms.
getCookTime(), 0);
1992 {
return opinstNumExpressions_expr_enable(cookparms, &_idx); }
1996 if (!thissop)
return (myNumExpressions(_idx[0]).expr_enable);
1998 _parmidx[1-1] = _idx[1-1] + 1;
2001 OP_Utils::evalOpParmInst(result, thissop,
"expr_enable#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2005 {
return opinstNumExpressions_expr_cachewhen(cookparms, &_idx); }
2009 if (!thissop)
return (myNumExpressions(_idx[0]).expr_cachewhen);
2011 _parmidx[1-1] = _idx[1-1] + 1;
2014 OP_Utils::evalOpParmInst(result, thissop,
"expr_cachewhen#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2018 {
return opinstNumExpressions_expr_exprval(cookparms, &_idx); }
2022 if (!thissop)
return (myNumExpressions(_idx[0]).expr_exprval);
2024 _parmidx[1-1] = _idx[1-1] + 1;
2027 OP_Utils::evalOpParmInst(result, thissop,
"expr_exprval#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2031 {
return opinstNumExpressions_expr_exprtype(cookparms, &_idx); }
2035 if (!thissop)
return (myNumExpressions(_idx[0]).expr_exprtype);
2037 _parmidx[1-1] = _idx[1-1] + 1;
2040 OP_Utils::evalOpParmInst(result, thissop,
"expr_exprtype#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2044 {
return opinstNumExpressions_expr_numexpr(cookparms, &_idx); }
2048 if (!thissop)
return (myNumExpressions(_idx[0]).expr_numexpr);
2050 _parmidx[1-1] = _idx[1-1] + 1;
2053 OP_Utils::evalOpParmInst(result, thissop,
"expr_numexpr#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2057 {
return opinstNumExpressions_expr_strexpr(cookparms, &_idx); }
2061 if (!thissop)
return (myNumExpressions(_idx[0]).expr_strexpr);
2063 _parmidx[1-1] = _idx[1-1] + 1;
2066 OP_Utils::evalOpParmInst(result, thissop,
"expr_strexpr#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2072 bool myCheckUpstream;
2073 bool myOutputAttrib;
2077 int64 myCheckGroups;
int64 opinstNumPatterns_parm_oninput(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool getCheckAttrib() const
void setNumPatterns(const UT_Array< NumPatterns > &val)
UT_StringHolder parm_parmfilter
static void loadData(UT_IStream &is, UT_Vector2I &v)
static void loadData(UT_IStream &is, UT_Matrix2D &v)
void setCheckGroups(CheckGroups val)
bool operator!=(const NumExpressions &src) const
static void saveData(std::ostream &os, UT_StringHolder s)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
void setCheckUpstream(bool val)
GLenum GLuint GLenum GLsizei const GLchar * buf
UT_StringHolder opinstNumInputs_input_primitiveattribs(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool opinstNumInputs_input_enable(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void saveData(std::ostream &os, fpreal64 v)
const UT_Array< NumPatterns > & getNumPatterns() const
bool opNumInputs_input_checktopology(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void saveData(std::ostream &os, UT_Matrix2D v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
static void saveData(std::ostream &os, UT_Matrix3D v)
SOP_Node * getNode() const
static void loadData(UT_IStream &is, UT_Matrix4D &v)
static void saveData(std::ostream &os, PRM_DataItemHandle s)
bool opNumExpressions_expr_enable(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void loadData(UT_IStream &is, UT_Vector3D &v)
bool opinstNumInputs_input_checktopology(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
UT_StringHolder createString(const UT_Array< NumInputs > &list) const
static void loadData(UT_IStream &is, int64 &v)
static void loadData(UT_IStream &is, UT_StringHolder &v)
exint bread(int32 *buffer, exint asize=1)
void setOutputAttrib(bool val)
GT_API const UT_StringHolder time
UT_StringHolder opinstNumPatterns_parm_groupfilter(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
constexpr SYS_FORCE_INLINE T & y() noexcept
bool parm_expandmultiparms
static void loadData(UT_IStream &is, UT_Vector2D &v)
bool operator==(const NumPatterns &src) const
UT_StringHolder opinstNumInputs_input_vertexgroups(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool load(UT_IStream &is)
static void saveData(std::ostream &os, UT_Vector4D v)
bool opNumInputs_input_checkpointgroups(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void saveData(std::ostream &os, int64 v)
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
void setCheckAttrib(bool val)
const OP_Context & context() const
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
const UT_StringHolder & getAttribName() const
constexpr SYS_FORCE_INLINE T & z() noexcept
UT_StringHolder parm_nodepath
SYS_FORCE_INLINE const char * buffer() const
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
SYS_FORCE_INLINE UT_StringHolder getToken(CheckGroups enum_value)
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
void setAttribName(const UT_StringHolder &val)
UT_StringHolder expr_strexpr
GLuint GLsizei GLsizei * length
An output stream object that owns its own string buffer storage.
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
bool opNumInputs_input_checkchangecount(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void loadData(UT_IStream &is, fpreal64 &v)
CheckGroups getCheckGroups() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
**But if you need a result
UT_StringHolder parm_groupfilter
bool opNumPatterns_parm_expandmultiparms(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
bool operator!=(const SOP_CacheIfParms &src) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
bool operator==(const NumExpressions &src) const
bool opinstNumExpressions_expr_enable(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool opinstNumInputs_input_checkdetailattribs(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
fpreal64 opNumExpressions_expr_numexpr(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
static void loadData(UT_IStream &is, bool &v)
bool opinstNumInputs_input_checkpointgroups(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool opinstNumPatterns_parm_enable(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool opinstNumInputs_input_checkdetailid(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
UT_StringHolder opNumExpressions_expr_strexpr(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
bool opNumInputs_input_enable(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
constexpr SYS_FORCE_INLINE T & x() noexcept
void setNumInputs(const UT_Array< NumInputs > &val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
const char * getNestParmName(TempIndex fieldnum) const override
bool operator!=(const NumPatterns &src) const
fpreal64 opinstNumExpressions_expr_numexpr(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
GLuint GLsizei const GLuint const GLintptr * offsets
constexpr SYS_FORCE_INLINE T & x() noexcept
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
bool opNumInputs_input_checkdetailattribs(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void saveData(std::ostream &os, UT_Vector2D v)
UT_StringHolder opNumInputs_input_edgegroups(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
UT_StringHolder opinstNumPatterns_parm_nodepath(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
int64 opNumExpressions_expr_cachewhen(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
exint opNumPatterns(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
static void loadData(UT_IStream &is, UT_Vector3I &v)
bool opCheckUpstream(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opinstNumInputs_input_pointgroups(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool opCheckAttrib(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opinstNumInputs_input_primitivegroups(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
int64 opinstNumExpressions_expr_exprtype(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
exint opNumExpressions(const SOP_NodeVerb::CookParms &cookparms) const
bool opOutputAttrib(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opinstNumInputs_input_edgegroups(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
bool isParmColorRamp(exint idx) const override
bool opinstNumInputs_input_checkpointattribs(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void save(std::ostream &os) const
const UT_Array< NumExpressions > & getNumExpressions() const
UT_StringHolder opNumInputs_input_detailattribs(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
constexpr SYS_FORCE_INLINE T & z() noexcept
static void loadData(UT_IStream &is, UT_Vector4I &v)
bool opNumInputs_input_checkdetailid(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void copyFrom(const OP_NodeParms *src) override
UT_StringHolder createString(const UT_Array< NumExpressions > &list) const
exint read(bool *array, exint sz=1)
const OP_GraphProxy * graph() const
bool opinstNumPatterns_parm_expandmultiparms(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
bool operator==(const SOP_CacheIfParms &src) const
void loadFromOpSubclass(const LoadParms &loadparms) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
exint opNumInputs(const SOP_NodeVerb::CookParms &cookparms) 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
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
int64 opinstNumExpressions_expr_cachewhen(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
ParmType getNestParmType(TempIndex fieldnum) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
UT_StringHolder opinstNumPatterns_parm_parmfilter(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool opNumPatterns_parm_enable(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
SYS_FORCE_INLINE void strcat(const char *src)
void saveBinary(std::ostream &os) const
Save string to binary stream.
GT_API const UT_StringHolder version
UT_StringHolder opNumInputs_input_primitiveattribs(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
exint entries() const
Alias of size(). size() is preferred.
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
bool opNumInputs_input_checkvertexattribs(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setNumExpressions(const UT_Array< NumExpressions > &val)
UT_StringHolder opNumInputs_input_pointattribs(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
int int appendSprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
int64 opinstNumPatterns_parm_grouptype(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool opinstNumInputs_input_checkprimitivesid(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void saveData(std::ostream &os, UT_Vector3D v)
static void loadData(UT_IStream &is, UT_Vector4D &v)
UT_StringHolder opNumInputs_input_primitivegroups(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool opNumInputs_input_checkedgegroups(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
DEP_MicroNode * depnode() const
UT_StringHolder opAttribName(const SOP_NodeVerb::CookParms &cookparms) const
bool getOutputAttrib() const
bool opinstNumInputs_input_checkchangecount(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
LeafData & operator=(const LeafData &)=delete
UT_StringHolder opinstNumInputs_input_vertexattribs(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
Utility class for containing a color ramp.
constexpr SYS_FORCE_INLINE T & w() noexcept
SYS_FORCE_INLINE void append(char character)
UT_StringHolder createString(const UT_Array< NumPatterns > &list) const
bool opNumInputs_input_checkprimitivegroups(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
exint getNestNumParms(TempIndex idx) const override
bool opinstNumInputs_input_checkvertexgroups(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool opinstNumInputs_input_checkedgegroups(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
fpreal getCookTime() const
UT_StringHolder opNumInputs_input_pointgroups(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
UT_StringHolder opNumInputs_input_vertexattribs(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
UT_StringHolder opNumPatterns_parm_parmfilter(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
const char * findChar(int c) const
UT_StringHolder opNumPatterns_parm_nodepath(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool opinstNumInputs_input_checkprimitiveattribs(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
UT_StringHolder opNumPatterns_parm_groupfilter(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
int64 opNumPatterns_parm_grouptype(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool opNumInputs_input_checkpointattribs(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
static void saveData(std::ostream &os, bool v)
constexpr SYS_FORCE_INLINE T & y() noexcept
const UT_Array< NumInputs > & getNumInputs() const
bool opinstNumInputs_input_checkvertexattribs(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool opNumInputs_input_checkprimitivesid(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
int64 opNumExpressions_expr_exprtype(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool opNumInputs_input_checkvertexgroups(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool opinstNumInputs_input_checkprimitivegroups(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
CheckGroups opCheckGroups(const SOP_NodeVerb::CookParms &cookparms) const
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
constexpr SYS_FORCE_INLINE T & y() noexcept
UT_StringHolder opinstNumExpressions_expr_strexpr(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
SYS_FORCE_INLINE bool isstring() const
bool getCheckUpstream() const
UT_StringHolder opinstNumInputs_input_detailattribs(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void saveData(std::ostream &os, UT_Matrix4D v)
UT_StringHolder opinstNumInputs_input_pointattribs(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
bool opNumInputs_input_checkprimitiveattribs(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
int64 opinstNumExpressions_expr_exprval(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
int64 opNumExpressions_expr_exprval(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void loadData(UT_IStream &is, UT_Matrix3D &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
UT_StringHolder opNumInputs_input_vertexgroups(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
constexpr SYS_FORCE_INLINE T & x() noexcept
int64 opNumPatterns_parm_oninput(const SOP_NodeVerb::CookParms &cookparms, int _idx) const