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;
434 myCheckUpstream =
false;
436 graph->
evalOpParm(myCheckUpstream, nodeidx,
"checkupstream", time, graph->
isDirect()?
nullptr:depnode);
437 myOutputAttrib =
false;
439 graph->
evalOpParm(myOutputAttrib, nodeidx,
"outputattrib", time, graph->
isDirect()?
nullptr:depnode);
440 myCheckAttrib =
false;
442 graph->
evalOpParm(myCheckAttrib, nodeidx,
"checkattrib", time, graph->
isDirect()?
nullptr:depnode);
443 myAttribName =
""_UTsh;
445 graph->
evalOpParm(myAttribName, nodeidx,
"attribname", time, graph->
isDirect()?
nullptr:depnode);
449 graph->
evalOpParm(length, nodeidx,
"numinputs", time, graph->
isDirect()?
nullptr:depnode);
450 if (length < 0) length = 0;
451 myNumInputs.setSize(length);
458 auto && _curentry = myNumInputs(i);
460 _curentry.input_enable =
true;
462 graph->
evalOpParmInst(_curentry.input_enable, nodeidx,
"input_enable#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
463 _curentry.input_checkpointattribs =
false;
465 graph->
evalOpParmInst(_curentry.input_checkpointattribs, nodeidx,
"input_checkpointattribs#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
466 _curentry.input_pointattribs =
""_UTsh;
467 if (
true && ( (
true&&!(((_curentry.input_checkpointattribs==0)))) ) )
468 graph->
evalOpParmInst(_curentry.input_pointattribs, nodeidx,
"input_pointattribs#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
469 _curentry.input_checkvertexattribs =
false;
471 graph->
evalOpParmInst(_curentry.input_checkvertexattribs, nodeidx,
"input_checkvertexattribs#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
472 _curentry.input_vertexattribs =
""_UTsh;
473 if (
true && ( (
true&&!(((_curentry.input_checkvertexattribs==0)))) ) )
474 graph->
evalOpParmInst(_curentry.input_vertexattribs, nodeidx,
"input_vertexattribs#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
475 _curentry.input_checkprimitiveattribs =
false;
477 graph->
evalOpParmInst(_curentry.input_checkprimitiveattribs, nodeidx,
"input_checkprimitiveattribs#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
478 _curentry.input_primitiveattribs =
""_UTsh;
479 if (
true && ( (
true&&!(((_curentry.input_checkprimitiveattribs==0)))) ) )
480 graph->
evalOpParmInst(_curentry.input_primitiveattribs, nodeidx,
"input_primitiveattribs#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
481 _curentry.input_checkdetailattribs =
false;
483 graph->
evalOpParmInst(_curentry.input_checkdetailattribs, nodeidx,
"input_checkdetailattribs#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
484 _curentry.input_detailattribs =
""_UTsh;
485 if (
true && ( (
true&&!(((_curentry.input_checkdetailattribs==0)))) ) )
486 graph->
evalOpParmInst(_curentry.input_detailattribs, nodeidx,
"input_detailattribs#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
487 _curentry.input_checkpointgroups =
false;
489 graph->
evalOpParmInst(_curentry.input_checkpointgroups, nodeidx,
"input_checkpointgroups#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
490 _curentry.input_pointgroups =
""_UTsh;
491 if (
true && ( (
true&&!(((_curentry.input_checkpointgroups==0)))) ) )
492 graph->
evalOpParmInst(_curentry.input_pointgroups, nodeidx,
"input_pointgroups#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
493 _curentry.input_checkvertexgroups =
false;
495 graph->
evalOpParmInst(_curentry.input_checkvertexgroups, nodeidx,
"input_checkvertexgroups#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
496 _curentry.input_vertexgroups =
""_UTsh;
497 if (
true && ( (
true&&!(((_curentry.input_checkvertexgroups==0)))) ) )
498 graph->
evalOpParmInst(_curentry.input_vertexgroups, nodeidx,
"input_vertexgroups#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
499 _curentry.input_checkprimitivegroups =
false;
501 graph->
evalOpParmInst(_curentry.input_checkprimitivegroups, nodeidx,
"input_checkprimitivegroups#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
502 _curentry.input_primitivegroups =
""_UTsh;
503 if (
true && ( (
true&&!(((_curentry.input_checkprimitivegroups==0)))) ) )
504 graph->
evalOpParmInst(_curentry.input_primitivegroups, nodeidx,
"input_primitivegroups#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
505 _curentry.input_checkedgegroups =
false;
507 graph->
evalOpParmInst(_curentry.input_checkedgegroups, nodeidx,
"input_checkedgegroups#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
508 _curentry.input_edgegroups =
""_UTsh;
509 if (
true && ( (
true&&!(((_curentry.input_checkedgegroups==0)))) ) )
510 graph->
evalOpParmInst(_curentry.input_edgegroups, nodeidx,
"input_edgegroups#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
511 _curentry.input_checkdetailid =
false;
513 graph->
evalOpParmInst(_curentry.input_checkdetailid, nodeidx,
"input_checkdetailid#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
514 _curentry.input_checkprimitivesid =
true;
516 graph->
evalOpParmInst(_curentry.input_checkprimitivesid, nodeidx,
"input_checkprimitivesid#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
517 _curentry.input_checktopology =
true;
519 graph->
evalOpParmInst(_curentry.input_checktopology, nodeidx,
"input_checktopology#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
520 _curentry.input_checkchangecount =
false;
522 graph->
evalOpParmInst(_curentry.input_checkchangecount, nodeidx,
"input_checkchangecount#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
530 graph->
evalOpParm(myCheckGroups, nodeidx,
"checkgroups", time, graph->
isDirect()?
nullptr:depnode);
534 graph->
evalOpParm(length, nodeidx,
"numpatterns", time, graph->
isDirect()?
nullptr:depnode);
535 if (length < 0) length = 0;
536 myNumPatterns.setSize(length);
543 auto && _curentry = myNumPatterns(i);
545 _curentry.parm_enable =
true;
547 graph->
evalOpParmInst(_curentry.parm_enable, nodeidx,
"parm_enable#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
548 _curentry.parm_nodepath =
""_UTsh;
549 if (
true && ( (
true&&!(((_curentry.parm_enable==0)))) ) )
550 graph->
evalOpParmInst(_curentry.parm_nodepath, nodeidx,
"parm_nodepath#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
551 _curentry.parm_parmfilter =
"*"_UTsh;
552 if (
true && ( (
true&&!(((_curentry.parm_enable==0)))) ) )
553 graph->
evalOpParmInst(_curentry.parm_parmfilter, nodeidx,
"parm_parmfilter#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
554 _curentry.parm_expandmultiparms =
true;
555 if (
true && ( (
true&&!(((_curentry.parm_enable==0)))) ) )
556 graph->
evalOpParmInst(_curentry.parm_expandmultiparms, nodeidx,
"parm_expandmultiparms#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
557 _curentry.parm_groupfilter =
""_UTsh;
558 if (
true && ( (
true&&!(((_curentry.parm_enable==0)))) ) )
559 graph->
evalOpParmInst(_curentry.parm_groupfilter, nodeidx,
"parm_groupfilter#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
560 _curentry.parm_grouptype = 1;
561 if (
true && ( (
true&&!(((_curentry.parm_enable==0)))) ) )
562 graph->
evalOpParmInst(_curentry.parm_grouptype, nodeidx,
"parm_grouptype#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
563 _curentry.parm_oninput = 0;
564 if (
true && ( (
true&&!(((_curentry.parm_enable==0)))) ) )
565 graph->
evalOpParmInst(_curentry.parm_oninput, nodeidx,
"parm_oninput#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
570 myNumPatterns.clear();
574 graph->
evalOpParm(length, nodeidx,
"numexpressions", time, graph->
isDirect()?
nullptr:depnode);
575 if (length < 0) length = 0;
576 myNumExpressions.setSize(length);
583 auto && _curentry = myNumExpressions(i);
585 _curentry.expr_enable =
true;
587 graph->
evalOpParmInst(_curentry.expr_enable, nodeidx,
"expr_enable#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
588 _curentry.expr_cachewhen = 0;
589 if (
true && ( (
true&&!(((_curentry.expr_enable==0)))) ) )
590 graph->
evalOpParmInst(_curentry.expr_cachewhen, nodeidx,
"expr_cachewhen#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
591 _curentry.expr_exprval = 0;
592 if (
true && ( (
true&&!(((_curentry.expr_enable==0))||((_curentry.expr_cachewhen!=0)))) ) )
593 graph->
evalOpParmInst(_curentry.expr_exprval, nodeidx,
"expr_exprval#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
594 _curentry.expr_exprtype = 0;
595 if (
true && ( (
true&&!(((_curentry.expr_enable==0))||((_curentry.expr_cachewhen!=1)))) ) )
596 graph->
evalOpParmInst(_curentry.expr_exprtype, nodeidx,
"expr_exprtype#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
597 _curentry.expr_numexpr = 0;
598 if (
true && ( (
true&&!(((_curentry.expr_enable==0))||((_curentry.expr_cachewhen!=1))||((_curentry.expr_exprtype!=0)))) ) )
599 graph->
evalOpParmInst(_curentry.expr_numexpr, nodeidx,
"expr_numexpr#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
600 _curentry.expr_strexpr =
""_UTsh;
601 if (
true && ( (
true&&!(((_curentry.expr_enable==0))||((_curentry.expr_cachewhen!=1))||((_curentry.expr_exprtype!=1)))) ) )
602 graph->
evalOpParmInst(_curentry.expr_strexpr, nodeidx,
"expr_strexpr#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
607 myNumExpressions.clear();
623 template <
typename T>
630 if (idx.
size() != instance.
size()+1)
635 coerceValue(value, myCheckUpstream);
638 coerceValue(value, myOutputAttrib);
641 coerceValue(value, myCheckAttrib);
644 coerceValue(value, myAttribName);
648 coerceValue(value, myNumInputs.entries());
649 else if (instance[0] < myNumInputs.entries())
651 auto && _data = myNumInputs(instance[0]);
655 coerceValue(value, _data.input_enable);
658 coerceValue(value, _data.input_checkpointattribs);
661 coerceValue(value, _data.input_pointattribs);
664 coerceValue(value, _data.input_checkvertexattribs);
667 coerceValue(value, _data.input_vertexattribs);
670 coerceValue(value, _data.input_checkprimitiveattribs);
673 coerceValue(value, _data.input_primitiveattribs);
676 coerceValue(value, _data.input_checkdetailattribs);
679 coerceValue(value, _data.input_detailattribs);
682 coerceValue(value, _data.input_checkpointgroups);
685 coerceValue(value, _data.input_pointgroups);
688 coerceValue(value, _data.input_checkvertexgroups);
691 coerceValue(value, _data.input_vertexgroups);
694 coerceValue(value, _data.input_checkprimitivegroups);
697 coerceValue(value, _data.input_primitivegroups);
700 coerceValue(value, _data.input_checkedgegroups);
703 coerceValue(value, _data.input_edgegroups);
706 coerceValue(value, _data.input_checkdetailid);
709 coerceValue(value, _data.input_checkprimitivesid);
712 coerceValue(value, _data.input_checktopology);
715 coerceValue(value, _data.input_checkchangecount);
722 coerceValue(value, myCheckGroups);
726 coerceValue(value, myNumPatterns.entries());
727 else if (instance[0] < myNumPatterns.entries())
729 auto && _data = myNumPatterns(instance[0]);
733 coerceValue(value, _data.parm_enable);
736 coerceValue(value, _data.parm_nodepath);
739 coerceValue(value, _data.parm_parmfilter);
742 coerceValue(value, _data.parm_expandmultiparms);
745 coerceValue(value, _data.parm_groupfilter);
748 coerceValue(value, _data.parm_grouptype);
751 coerceValue(value, _data.parm_oninput);
759 coerceValue(value, myNumExpressions.entries());
760 else if (instance[0] < myNumExpressions.entries())
762 auto && _data = myNumExpressions(instance[0]);
766 coerceValue(value, _data.expr_enable);
769 coerceValue(value, _data.expr_cachewhen);
772 coerceValue(value, _data.expr_exprval);
775 coerceValue(value, _data.expr_exprtype);
778 coerceValue(value, _data.expr_numexpr);
781 coerceValue(value, _data.expr_strexpr);
801 { doGetParmValue(idx, instance, value); }
803 { doGetParmValue(idx, instance, value); }
805 { doGetParmValue(idx, instance, value); }
807 { doGetParmValue(idx, instance, value); }
809 { doGetParmValue(idx, instance, value); }
811 { doGetParmValue(idx, instance, value); }
813 { doGetParmValue(idx, instance, value); }
815 { doGetParmValue(idx, instance, value); }
817 { doGetParmValue(idx, instance, value); }
819 { doGetParmValue(idx, instance, value); }
821 { doGetParmValue(idx, instance, value); }
823 template <
typename T>
830 if (idx.
size() != instance.
size()+1)
835 coerceValue(myCheckUpstream, ( ( value ) ));
838 coerceValue(myOutputAttrib, ( ( value ) ));
841 coerceValue(myCheckAttrib, ( ( value ) ));
844 coerceValue(myAttribName, ( ( value ) ));
850 coerceValue(newsize, value);
851 if (newsize < 0) newsize = 0;
852 myNumInputs.setSize(newsize);
858 myNumInputs.setSizeIfNeeded(instance[0]+1);
859 auto && _data = myNumInputs(instance[0]);
863 coerceValue(_data.input_enable, value);
866 coerceValue(_data.input_checkpointattribs, value);
869 coerceValue(_data.input_pointattribs, value);
872 coerceValue(_data.input_checkvertexattribs, value);
875 coerceValue(_data.input_vertexattribs, value);
878 coerceValue(_data.input_checkprimitiveattribs, value);
881 coerceValue(_data.input_primitiveattribs, value);
884 coerceValue(_data.input_checkdetailattribs, value);
887 coerceValue(_data.input_detailattribs, value);
890 coerceValue(_data.input_checkpointgroups, value);
893 coerceValue(_data.input_pointgroups, value);
896 coerceValue(_data.input_checkvertexgroups, value);
899 coerceValue(_data.input_vertexgroups, value);
902 coerceValue(_data.input_checkprimitivegroups, value);
905 coerceValue(_data.input_primitivegroups, value);
908 coerceValue(_data.input_checkedgegroups, value);
911 coerceValue(_data.input_edgegroups, value);
914 coerceValue(_data.input_checkdetailid, value);
917 coerceValue(_data.input_checkprimitivesid, value);
920 coerceValue(_data.input_checktopology, value);
923 coerceValue(_data.input_checkchangecount, value);
930 coerceValue(myCheckGroups, clampMinValue(0, clampMaxValue(1, value ) ));
936 coerceValue(newsize, value);
937 if (newsize < 0) newsize = 0;
938 myNumPatterns.setSize(newsize);
944 myNumPatterns.setSizeIfNeeded(instance[0]+1);
945 auto && _data = myNumPatterns(instance[0]);
949 coerceValue(_data.parm_enable, value);
952 coerceValue(_data.parm_nodepath, value);
955 coerceValue(_data.parm_parmfilter, value);
958 coerceValue(_data.parm_expandmultiparms, value);
961 coerceValue(_data.parm_groupfilter, value);
964 coerceValue(_data.parm_grouptype, value);
967 coerceValue(_data.parm_oninput, value);
977 coerceValue(newsize, value);
978 if (newsize < 0) newsize = 0;
979 myNumExpressions.setSize(newsize);
985 myNumExpressions.setSizeIfNeeded(instance[0]+1);
986 auto && _data = myNumExpressions(instance[0]);
990 coerceValue(_data.expr_enable, value);
993 coerceValue(_data.expr_cachewhen, value);
996 coerceValue(_data.expr_exprval, value);
999 coerceValue(_data.expr_exprtype, value);
1002 coerceValue(_data.expr_numexpr, value);
1005 coerceValue(_data.expr_strexpr, value);
1016 { doSetParmValue(idx, instance, value); }
1018 { doSetParmValue(idx, instance, value); }
1020 { doSetParmValue(idx, instance, value); }
1022 { doSetParmValue(idx, instance, value); }
1024 { doSetParmValue(idx, instance, value); }
1026 { doSetParmValue(idx, instance, value); }
1028 { doSetParmValue(idx, instance, value); }
1030 { doSetParmValue(idx, instance, value); }
1032 { doSetParmValue(idx, instance, value); }
1034 { doSetParmValue(idx, instance, value); }
1036 { doSetParmValue(idx, instance, value); }
1040 if (idx.
size() == 0)
1058 if (fieldnum.
size() < 1)
1060 switch (fieldnum[0])
1063 return "checkupstream";
1065 return "outputattrib";
1067 return "checkattrib";
1069 return "attribname";
1071 if (fieldnum.
size() == 1)
1073 switch (fieldnum[1])
1076 return "input_enable#";
1078 return "input_checkpointattribs#";
1080 return "input_pointattribs#";
1082 return "input_checkvertexattribs#";
1084 return "input_vertexattribs#";
1086 return "input_checkprimitiveattribs#";
1088 return "input_primitiveattribs#";
1090 return "input_checkdetailattribs#";
1092 return "input_detailattribs#";
1094 return "input_checkpointgroups#";
1096 return "input_pointgroups#";
1098 return "input_checkvertexgroups#";
1100 return "input_vertexgroups#";
1102 return "input_checkprimitivegroups#";
1104 return "input_primitivegroups#";
1106 return "input_checkedgegroups#";
1108 return "input_edgegroups#";
1110 return "input_checkdetailid#";
1112 return "input_checkprimitivesid#";
1114 return "input_checktopology#";
1116 return "input_checkchangecount#";
1121 return "checkgroups";
1123 if (fieldnum.
size() == 1)
1124 return "numpatterns";
1125 switch (fieldnum[1])
1128 return "parm_enable#";
1130 return "parm_nodepath#";
1132 return "parm_parmfilter#";
1134 return "parm_expandmultiparms#";
1136 return "parm_groupfilter#";
1138 return "parm_grouptype#";
1140 return "parm_oninput#";
1145 if (fieldnum.
size() == 1)
1146 return "numexpressions";
1147 switch (fieldnum[1])
1150 return "expr_enable#";
1152 return "expr_cachewhen#";
1154 return "expr_exprval#";
1156 return "expr_exprtype#";
1158 return "expr_numexpr#";
1160 return "expr_strexpr#";
1171 if (fieldnum.
size() < 1)
1172 return PARM_UNSUPPORTED;
1173 switch (fieldnum[0])
1176 return PARM_INTEGER;
1178 return PARM_INTEGER;
1180 return PARM_INTEGER;
1184 if (fieldnum.
size() == 1)
1185 return PARM_MULTIPARM;
1186 switch (fieldnum[1])
1189 return PARM_INTEGER;
1191 return PARM_INTEGER;
1195 return PARM_INTEGER;
1199 return PARM_INTEGER;
1203 return PARM_INTEGER;
1207 return PARM_INTEGER;
1211 return PARM_INTEGER;
1215 return PARM_INTEGER;
1219 return PARM_INTEGER;
1223 return PARM_INTEGER;
1225 return PARM_INTEGER;
1227 return PARM_INTEGER;
1229 return PARM_INTEGER;
1232 return PARM_UNSUPPORTED;
1234 return PARM_INTEGER;
1236 if (fieldnum.
size() == 1)
1237 return PARM_MULTIPARM;
1238 switch (fieldnum[1])
1241 return PARM_INTEGER;
1247 return PARM_INTEGER;
1251 return PARM_INTEGER;
1253 return PARM_INTEGER;
1256 return PARM_UNSUPPORTED;
1258 if (fieldnum.
size() == 1)
1259 return PARM_MULTIPARM;
1260 switch (fieldnum[1])
1263 return PARM_INTEGER;
1265 return PARM_INTEGER;
1267 return PARM_INTEGER;
1269 return PARM_INTEGER;
1276 return PARM_UNSUPPORTED;
1279 return PARM_UNSUPPORTED;
1284 { is.
bread(&v, 1); }
1315 loadData(is, rampdata);
1333 int typelen = colon - data.
buffer();
1345 { UTwrite(os, &v); }
1347 {
int64 iv =
v; UTwrite(os, &iv); }
1349 { UTwrite<fpreal64>(os, &
v); }
1351 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
1353 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1354 UTwrite<fpreal64>(os, &v.
z()); }
1356 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1357 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
1369 if (s) s->save(ostr);
1370 result = ostr.
str();
1371 saveData(os, result);
1378 ostr << s->getDataTypeToken();
1380 s->saveBinary(ostr);
1382 result = ostr.
str();
1383 saveData(os, result);
1391 saveData(os, myCheckUpstream);
1392 saveData(os, myOutputAttrib);
1393 saveData(os, myCheckAttrib);
1394 saveData(os, myAttribName);
1397 UTwrite(os, &length);
1400 auto && _curentry = myNumInputs(i);
1402 saveData(os, _curentry.input_enable);
1403 saveData(os, _curentry.input_checkpointattribs);
1404 saveData(os, _curentry.input_pointattribs);
1405 saveData(os, _curentry.input_checkvertexattribs);
1406 saveData(os, _curentry.input_vertexattribs);
1407 saveData(os, _curentry.input_checkprimitiveattribs);
1408 saveData(os, _curentry.input_primitiveattribs);
1409 saveData(os, _curentry.input_checkdetailattribs);
1410 saveData(os, _curentry.input_detailattribs);
1411 saveData(os, _curentry.input_checkpointgroups);
1412 saveData(os, _curentry.input_pointgroups);
1413 saveData(os, _curentry.input_checkvertexgroups);
1414 saveData(os, _curentry.input_vertexgroups);
1415 saveData(os, _curentry.input_checkprimitivegroups);
1416 saveData(os, _curentry.input_primitivegroups);
1417 saveData(os, _curentry.input_checkedgegroups);
1418 saveData(os, _curentry.input_edgegroups);
1419 saveData(os, _curentry.input_checkdetailid);
1420 saveData(os, _curentry.input_checkprimitivesid);
1421 saveData(os, _curentry.input_checktopology);
1422 saveData(os, _curentry.input_checkchangecount);
1426 saveData(os, myCheckGroups);
1429 UTwrite(os, &length);
1432 auto && _curentry = myNumPatterns(i);
1434 saveData(os, _curentry.parm_enable);
1435 saveData(os, _curentry.parm_nodepath);
1436 saveData(os, _curentry.parm_parmfilter);
1437 saveData(os, _curentry.parm_expandmultiparms);
1438 saveData(os, _curentry.parm_groupfilter);
1439 saveData(os, _curentry.parm_grouptype);
1440 saveData(os, _curentry.parm_oninput);
1446 UTwrite(os, &length);
1449 auto && _curentry = myNumExpressions(i);
1451 saveData(os, _curentry.expr_enable);
1452 saveData(os, _curentry.expr_cachewhen);
1453 saveData(os, _curentry.expr_exprval);
1454 saveData(os, _curentry.expr_exprtype);
1455 saveData(os, _curentry.expr_numexpr);
1456 saveData(os, _curentry.expr_strexpr);
1472 loadData(is, myCheckUpstream);
1473 loadData(is, myOutputAttrib);
1474 loadData(is, myCheckAttrib);
1475 loadData(is, myAttribName);
1478 is.
read(&length, 1);
1479 myNumInputs.setSize(length);
1482 auto && _curentry = myNumInputs(i);
1484 loadData(is, _curentry.input_enable);
1485 loadData(is, _curentry.input_checkpointattribs);
1486 loadData(is, _curentry.input_pointattribs);
1487 loadData(is, _curentry.input_checkvertexattribs);
1488 loadData(is, _curentry.input_vertexattribs);
1489 loadData(is, _curentry.input_checkprimitiveattribs);
1490 loadData(is, _curentry.input_primitiveattribs);
1491 loadData(is, _curentry.input_checkdetailattribs);
1492 loadData(is, _curentry.input_detailattribs);
1493 loadData(is, _curentry.input_checkpointgroups);
1494 loadData(is, _curentry.input_pointgroups);
1495 loadData(is, _curentry.input_checkvertexgroups);
1496 loadData(is, _curentry.input_vertexgroups);
1497 loadData(is, _curentry.input_checkprimitivegroups);
1498 loadData(is, _curentry.input_primitivegroups);
1499 loadData(is, _curentry.input_checkedgegroups);
1500 loadData(is, _curentry.input_edgegroups);
1501 loadData(is, _curentry.input_checkdetailid);
1502 loadData(is, _curentry.input_checkprimitivesid);
1503 loadData(is, _curentry.input_checktopology);
1504 loadData(is, _curentry.input_checkchangecount);
1508 loadData(is, myCheckGroups);
1511 is.
read(&length, 1);
1512 myNumPatterns.setSize(length);
1515 auto && _curentry = myNumPatterns(i);
1517 loadData(is, _curentry.parm_enable);
1518 loadData(is, _curentry.parm_nodepath);
1519 loadData(is, _curentry.parm_parmfilter);
1520 loadData(is, _curentry.parm_expandmultiparms);
1521 loadData(is, _curentry.parm_groupfilter);
1522 loadData(is, _curentry.parm_grouptype);
1523 loadData(is, _curentry.parm_oninput);
1529 is.
read(&length, 1);
1530 myNumExpressions.setSize(length);
1533 auto && _curentry = myNumExpressions(i);
1535 loadData(is, _curentry.expr_enable);
1536 loadData(is, _curentry.expr_cachewhen);
1537 loadData(is, _curentry.expr_exprval);
1538 loadData(is, _curentry.expr_exprtype);
1539 loadData(is, _curentry.expr_numexpr);
1540 loadData(is, _curentry.expr_strexpr);
1553 if (!thissop)
return getCheckUpstream();
1555 OP_Utils::evalOpParm(result, thissop,
"checkupstream", cookparms.
getCookTime(), 0);
1563 if (!thissop)
return getOutputAttrib();
1565 OP_Utils::evalOpParm(result, thissop,
"outputattrib", cookparms.
getCookTime(), 0);
1573 if (!thissop)
return getCheckAttrib();
1575 OP_Utils::evalOpParm(result, thissop,
"checkattrib", cookparms.
getCookTime(), 0);
1583 if (!thissop)
return getAttribName();
1585 OP_Utils::evalOpParm(result, thissop,
"attribname", cookparms.
getCookTime(), 0);
1593 if (!thissop)
return getNumInputs().entries();
1595 OP_Utils::evalOpParm(result, thissop,
"numinputs", cookparms.
getCookTime(), 0);
1599 {
return opinstNumInputs_input_enable(cookparms, &_idx); }
1603 if (!thissop)
return (myNumInputs(_idx[0]).input_enable);
1605 _parmidx[1-1] = _idx[1-1] + 1;
1608 OP_Utils::evalOpParmInst(result, thissop,
"input_enable#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1612 {
return opinstNumInputs_input_checkpointattribs(cookparms, &_idx); }
1616 if (!thissop)
return (myNumInputs(_idx[0]).input_checkpointattribs);
1618 _parmidx[1-1] = _idx[1-1] + 1;
1621 OP_Utils::evalOpParmInst(result, thissop,
"input_checkpointattribs#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1625 {
return opinstNumInputs_input_pointattribs(cookparms, &_idx); }
1629 if (!thissop)
return (myNumInputs(_idx[0]).input_pointattribs);
1631 _parmidx[1-1] = _idx[1-1] + 1;
1634 OP_Utils::evalOpParmInst(result, thissop,
"input_pointattribs#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1638 {
return opinstNumInputs_input_checkvertexattribs(cookparms, &_idx); }
1642 if (!thissop)
return (myNumInputs(_idx[0]).input_checkvertexattribs);
1644 _parmidx[1-1] = _idx[1-1] + 1;
1647 OP_Utils::evalOpParmInst(result, thissop,
"input_checkvertexattribs#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1651 {
return opinstNumInputs_input_vertexattribs(cookparms, &_idx); }
1655 if (!thissop)
return (myNumInputs(_idx[0]).input_vertexattribs);
1657 _parmidx[1-1] = _idx[1-1] + 1;
1660 OP_Utils::evalOpParmInst(result, thissop,
"input_vertexattribs#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1664 {
return opinstNumInputs_input_checkprimitiveattribs(cookparms, &_idx); }
1668 if (!thissop)
return (myNumInputs(_idx[0]).input_checkprimitiveattribs);
1670 _parmidx[1-1] = _idx[1-1] + 1;
1673 OP_Utils::evalOpParmInst(result, thissop,
"input_checkprimitiveattribs#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1677 {
return opinstNumInputs_input_primitiveattribs(cookparms, &_idx); }
1681 if (!thissop)
return (myNumInputs(_idx[0]).input_primitiveattribs);
1683 _parmidx[1-1] = _idx[1-1] + 1;
1686 OP_Utils::evalOpParmInst(result, thissop,
"input_primitiveattribs#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1690 {
return opinstNumInputs_input_checkdetailattribs(cookparms, &_idx); }
1694 if (!thissop)
return (myNumInputs(_idx[0]).input_checkdetailattribs);
1696 _parmidx[1-1] = _idx[1-1] + 1;
1699 OP_Utils::evalOpParmInst(result, thissop,
"input_checkdetailattribs#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1703 {
return opinstNumInputs_input_detailattribs(cookparms, &_idx); }
1707 if (!thissop)
return (myNumInputs(_idx[0]).input_detailattribs);
1709 _parmidx[1-1] = _idx[1-1] + 1;
1712 OP_Utils::evalOpParmInst(result, thissop,
"input_detailattribs#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1716 {
return opinstNumInputs_input_checkpointgroups(cookparms, &_idx); }
1720 if (!thissop)
return (myNumInputs(_idx[0]).input_checkpointgroups);
1722 _parmidx[1-1] = _idx[1-1] + 1;
1725 OP_Utils::evalOpParmInst(result, thissop,
"input_checkpointgroups#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1729 {
return opinstNumInputs_input_pointgroups(cookparms, &_idx); }
1733 if (!thissop)
return (myNumInputs(_idx[0]).input_pointgroups);
1735 _parmidx[1-1] = _idx[1-1] + 1;
1738 OP_Utils::evalOpParmInst(result, thissop,
"input_pointgroups#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1742 {
return opinstNumInputs_input_checkvertexgroups(cookparms, &_idx); }
1746 if (!thissop)
return (myNumInputs(_idx[0]).input_checkvertexgroups);
1748 _parmidx[1-1] = _idx[1-1] + 1;
1751 OP_Utils::evalOpParmInst(result, thissop,
"input_checkvertexgroups#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1755 {
return opinstNumInputs_input_vertexgroups(cookparms, &_idx); }
1759 if (!thissop)
return (myNumInputs(_idx[0]).input_vertexgroups);
1761 _parmidx[1-1] = _idx[1-1] + 1;
1764 OP_Utils::evalOpParmInst(result, thissop,
"input_vertexgroups#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1768 {
return opinstNumInputs_input_checkprimitivegroups(cookparms, &_idx); }
1772 if (!thissop)
return (myNumInputs(_idx[0]).input_checkprimitivegroups);
1774 _parmidx[1-1] = _idx[1-1] + 1;
1777 OP_Utils::evalOpParmInst(result, thissop,
"input_checkprimitivegroups#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1781 {
return opinstNumInputs_input_primitivegroups(cookparms, &_idx); }
1785 if (!thissop)
return (myNumInputs(_idx[0]).input_primitivegroups);
1787 _parmidx[1-1] = _idx[1-1] + 1;
1790 OP_Utils::evalOpParmInst(result, thissop,
"input_primitivegroups#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1794 {
return opinstNumInputs_input_checkedgegroups(cookparms, &_idx); }
1798 if (!thissop)
return (myNumInputs(_idx[0]).input_checkedgegroups);
1800 _parmidx[1-1] = _idx[1-1] + 1;
1803 OP_Utils::evalOpParmInst(result, thissop,
"input_checkedgegroups#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1807 {
return opinstNumInputs_input_edgegroups(cookparms, &_idx); }
1811 if (!thissop)
return (myNumInputs(_idx[0]).input_edgegroups);
1813 _parmidx[1-1] = _idx[1-1] + 1;
1816 OP_Utils::evalOpParmInst(result, thissop,
"input_edgegroups#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1820 {
return opinstNumInputs_input_checkdetailid(cookparms, &_idx); }
1824 if (!thissop)
return (myNumInputs(_idx[0]).input_checkdetailid);
1826 _parmidx[1-1] = _idx[1-1] + 1;
1829 OP_Utils::evalOpParmInst(result, thissop,
"input_checkdetailid#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1833 {
return opinstNumInputs_input_checkprimitivesid(cookparms, &_idx); }
1837 if (!thissop)
return (myNumInputs(_idx[0]).input_checkprimitivesid);
1839 _parmidx[1-1] = _idx[1-1] + 1;
1842 OP_Utils::evalOpParmInst(result, thissop,
"input_checkprimitivesid#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1846 {
return opinstNumInputs_input_checktopology(cookparms, &_idx); }
1850 if (!thissop)
return (myNumInputs(_idx[0]).input_checktopology);
1852 _parmidx[1-1] = _idx[1-1] + 1;
1855 OP_Utils::evalOpParmInst(result, thissop,
"input_checktopology#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1859 {
return opinstNumInputs_input_checkchangecount(cookparms, &_idx); }
1863 if (!thissop)
return (myNumInputs(_idx[0]).input_checkchangecount);
1865 _parmidx[1-1] = _idx[1-1] + 1;
1868 OP_Utils::evalOpParmInst(result, thissop,
"input_checkchangecount#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1877 if (!thissop)
return getCheckGroups();
1879 OP_Utils::evalOpParm(result, thissop,
"checkgroups", cookparms.
getCookTime(), 0);
1887 if (!thissop)
return getNumPatterns().entries();
1889 OP_Utils::evalOpParm(result, thissop,
"numpatterns", cookparms.
getCookTime(), 0);
1893 {
return opinstNumPatterns_parm_enable(cookparms, &_idx); }
1897 if (!thissop)
return (myNumPatterns(_idx[0]).parm_enable);
1899 _parmidx[1-1] = _idx[1-1] + 1;
1902 OP_Utils::evalOpParmInst(result, thissop,
"parm_enable#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1906 {
return opinstNumPatterns_parm_nodepath(cookparms, &_idx); }
1910 if (!thissop)
return (myNumPatterns(_idx[0]).parm_nodepath);
1912 _parmidx[1-1] = _idx[1-1] + 1;
1915 OP_Utils::evalOpParmInst(result, thissop,
"parm_nodepath#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1919 {
return opinstNumPatterns_parm_parmfilter(cookparms, &_idx); }
1923 if (!thissop)
return (myNumPatterns(_idx[0]).parm_parmfilter);
1925 _parmidx[1-1] = _idx[1-1] + 1;
1928 OP_Utils::evalOpParmInst(result, thissop,
"parm_parmfilter#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1932 {
return opinstNumPatterns_parm_expandmultiparms(cookparms, &_idx); }
1936 if (!thissop)
return (myNumPatterns(_idx[0]).parm_expandmultiparms);
1938 _parmidx[1-1] = _idx[1-1] + 1;
1941 OP_Utils::evalOpParmInst(result, thissop,
"parm_expandmultiparms#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1945 {
return opinstNumPatterns_parm_groupfilter(cookparms, &_idx); }
1949 if (!thissop)
return (myNumPatterns(_idx[0]).parm_groupfilter);
1951 _parmidx[1-1] = _idx[1-1] + 1;
1954 OP_Utils::evalOpParmInst(result, thissop,
"parm_groupfilter#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1958 {
return opinstNumPatterns_parm_grouptype(cookparms, &_idx); }
1962 if (!thissop)
return (myNumPatterns(_idx[0]).parm_grouptype);
1964 _parmidx[1-1] = _idx[1-1] + 1;
1967 OP_Utils::evalOpParmInst(result, thissop,
"parm_grouptype#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1971 {
return opinstNumPatterns_parm_oninput(cookparms, &_idx); }
1975 if (!thissop)
return (myNumPatterns(_idx[0]).parm_oninput);
1977 _parmidx[1-1] = _idx[1-1] + 1;
1980 OP_Utils::evalOpParmInst(result, thissop,
"parm_oninput#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1989 if (!thissop)
return getNumExpressions().entries();
1991 OP_Utils::evalOpParm(result, thissop,
"numexpressions", cookparms.
getCookTime(), 0);
1995 {
return opinstNumExpressions_expr_enable(cookparms, &_idx); }
1999 if (!thissop)
return (myNumExpressions(_idx[0]).expr_enable);
2001 _parmidx[1-1] = _idx[1-1] + 1;
2004 OP_Utils::evalOpParmInst(result, thissop,
"expr_enable#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2008 {
return opinstNumExpressions_expr_cachewhen(cookparms, &_idx); }
2012 if (!thissop)
return (myNumExpressions(_idx[0]).expr_cachewhen);
2014 _parmidx[1-1] = _idx[1-1] + 1;
2017 OP_Utils::evalOpParmInst(result, thissop,
"expr_cachewhen#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2021 {
return opinstNumExpressions_expr_exprval(cookparms, &_idx); }
2025 if (!thissop)
return (myNumExpressions(_idx[0]).expr_exprval);
2027 _parmidx[1-1] = _idx[1-1] + 1;
2030 OP_Utils::evalOpParmInst(result, thissop,
"expr_exprval#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2034 {
return opinstNumExpressions_expr_exprtype(cookparms, &_idx); }
2038 if (!thissop)
return (myNumExpressions(_idx[0]).expr_exprtype);
2040 _parmidx[1-1] = _idx[1-1] + 1;
2043 OP_Utils::evalOpParmInst(result, thissop,
"expr_exprtype#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2047 {
return opinstNumExpressions_expr_numexpr(cookparms, &_idx); }
2051 if (!thissop)
return (myNumExpressions(_idx[0]).expr_numexpr);
2053 _parmidx[1-1] = _idx[1-1] + 1;
2056 OP_Utils::evalOpParmInst(result, thissop,
"expr_numexpr#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2060 {
return opinstNumExpressions_expr_strexpr(cookparms, &_idx); }
2064 if (!thissop)
return (myNumExpressions(_idx[0]).expr_strexpr);
2066 _parmidx[1-1] = _idx[1-1] + 1;
2069 OP_Utils::evalOpParmInst(result, thissop,
"expr_strexpr#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2075 bool myCheckUpstream;
2076 bool myOutputAttrib;
2080 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)
GLsizei const GLfloat * value
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
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
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)
virtual UT_StringHolder baseGetSignature() const
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
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
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
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