23 namespace SOP_UVFlatten_2_0Enums
34 using namespace UT::Literal;
51 using namespace UT::Literal;
68 using namespace UT::Literal;
102 if (usepin != src.
usepin)
return false;
103 if (primvert != src.
primvert)
return false;
104 if (pinuv != src.
pinuv)
return false;
105 if (pinrefuv != src.
pinrefuv)
return false;
121 for (
int i = 0; i < list.
entries(); i++)
127 buf.
appendSprintf(
"%s", (list(i).usepin) ?
"true" :
"false");
129 buf.
appendSprintf(
"(%f, %f)", list(i).primvert.x(), list(i).primvert.y());
131 buf.
appendSprintf(
"(%f, %f)", list(i).pinuv.x(), list(i).pinuv.y());
133 buf.
appendSprintf(
"(%f, %f)", list(i).pinrefuv.x(), list(i).pinrefuv.y());
151 align_enabled =
true;
152 align_group =
""_UTsh;
161 if (align_axis != src.
align_axis)
return false;
177 for (
int i = 0; i < list.
entries(); i++)
183 buf.
appendSprintf(
"%s", (list(i).align_enabled) ?
"true" :
"false");
204 straight_enabled =
true;
205 straight_group =
""_UTsh;
228 for (
int i = 0; i < list.
entries(); i++)
234 buf.
appendSprintf(
"%s", (list(i).straight_enabled) ?
"true" :
"false");
262 if (lprimvert != src.
lprimvert)
return false;
263 if (lpinuv != src.
lpinuv)
return false;
264 if (lpinrefuv != src.
lpinrefuv)
return false;
280 for (
int i = 0; i < list.
entries(); i++)
286 buf.
appendSprintf(
"(%f, %f)", list(i).lprimvert.x(), list(i).lprimvert.y());
288 buf.
appendSprintf(
"(%f, %f)", list(i).lpinuv.x(), list(i).lpinuv.y());
290 buf.
appendSprintf(
"(%f, %f)", list(i).lpinrefuv.x(), list(i).lpinrefuv.y());
307 lalign_group =
""_UTsh;
331 for (
int i = 0; i < list.
entries(); i++)
355 lstraight_group =
""_UTsh;
377 for (
int i = 0; i < list.
entries(); i++)
396 myUVAttrib =
"uv"_UTsh;
398 myKeepExistingSeams =
false;
399 myKeepExistingLayout =
false;
400 myPinBoundaries =
false;
404 myUseAlignments =
true;
405 myAlignments.setSize(0);
406 myUseStraightenings =
true;
407 myStraightenings.setSize(0);
408 myManualLayout =
true;
409 myLayoutSeams =
""_UTsh;
411 myLalignments.setSize(0);
412 myLstraightenings.setSize(0);
413 myUseOutputSeams =
false;
414 myOutputSeams =
"outputseams"_UTsh;
415 myUseOutputConstrIslands =
false;
416 myOutputConstrIslands =
"constrainedprims"_UTsh;
431 if (myGroup != src.myGroup)
return false;
432 if (myUVAttrib != src.myUVAttrib)
return false;
433 if (myMethod != src.myMethod)
return false;
434 if (myKeepExistingSeams != src.myKeepExistingSeams)
return false;
435 if (myKeepExistingLayout != src.myKeepExistingLayout)
return false;
436 if (myPinBoundaries != src.myPinBoundaries)
return false;
437 if (mySeams != src.mySeams)
return false;
438 if (myUsePins != src.myUsePins)
return false;
439 if (myPins != src.myPins)
return false;
440 if (myUseAlignments != src.myUseAlignments)
return false;
441 if (myAlignments != src.myAlignments)
return false;
442 if (myUseStraightenings != src.myUseStraightenings)
return false;
443 if (myStraightenings != src.myStraightenings)
return false;
444 if (myManualLayout != src.myManualLayout)
return false;
445 if (myLayoutSeams != src.myLayoutSeams)
return false;
446 if (myLpins != src.myLpins)
return false;
447 if (myLalignments != src.myLalignments)
return false;
448 if (myLstraightenings != src.myLstraightenings)
return false;
449 if (myUseOutputSeams != src.myUseOutputSeams)
return false;
450 if (myOutputSeams != src.myOutputSeams)
return false;
451 if (myUseOutputConstrIslands != src.myUseOutputConstrIslands)
return false;
452 if (myOutputConstrIslands != src.myOutputConstrIslands)
return false;
453 if (myBBoxCenter != src.myBBoxCenter)
return false;
454 if (myBBoxSize != src.myBBoxSize)
return false;
475 graph->
evalOpParm(myGroup, nodeidx,
"group", time, graph->
isDirect()?
nullptr:depnode);
476 myUVAttrib =
"uv"_UTsh;
478 graph->
evalOpParm(myUVAttrib, nodeidx,
"uvattrib", time, graph->
isDirect()?
nullptr:depnode);
481 graph->
evalOpParm(myMethod, nodeidx,
"method", time, graph->
isDirect()?
nullptr:depnode);
482 myKeepExistingSeams =
false;
484 graph->
evalOpParm(myKeepExistingSeams, nodeidx,
"keepexistingseams", time, graph->
isDirect()?
nullptr:depnode);
485 myKeepExistingLayout =
false;
486 if (
true && ( (
true&&!(((getKeepExistingSeams()==0)))) ) )
487 graph->
evalOpParm(myKeepExistingLayout, nodeidx,
"keepexistinglayout", time, graph->
isDirect()?
nullptr:depnode);
488 myPinBoundaries =
false;
489 if (
true && ( (
true&&!(((getKeepExistingSeams()==0))||((
int64(getMethod())!=0)))) ) )
490 graph->
evalOpParm(myPinBoundaries, nodeidx,
"pinboundaries", time, graph->
isDirect()?
nullptr:depnode);
493 graph->
evalOpParm(mySeams, nodeidx,
"seamgroup", time, graph->
isDirect()?
nullptr:depnode);
496 graph->
evalOpParm(myUsePins, nodeidx,
"usepins", time, graph->
isDirect()?
nullptr:depnode);
497 if (
true && ( (!(((getUsePins()==0)))) ) )
501 if (length < 0) length = 0;
502 myPins.setSize(length);
509 auto && _curentry = myPins(i);
511 _curentry.usepin =
true;
512 if (
true && ( (!(((getUsePins()==0)))) ) )
513 graph->
evalOpParmInst(_curentry.usepin, nodeidx,
"usepin#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
515 if (
true && ( (!(((getUsePins()==0)))) ) )
516 graph->
evalOpParmInst(_curentry.primvert, nodeidx,
"primvert#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
518 if (
true && ( (!(((getUsePins()==0)))) ) )
519 graph->
evalOpParmInst(_curentry.pinuv, nodeidx,
"pinuv#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
521 if (
true && ( (!(((getUsePins()==0)))) ) )
522 graph->
evalOpParmInst(_curentry.pinrefuv, nodeidx,
"pinrefuv#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
528 myUseAlignments =
true;
530 graph->
evalOpParm(myUseAlignments, nodeidx,
"usealignments", time, graph->
isDirect()?
nullptr:depnode);
531 if (
true && ( (!(((getUseAlignments()==0)))) ) )
534 graph->
evalOpParm(length, nodeidx,
"alignments", time, graph->
isDirect()?
nullptr:depnode);
535 if (length < 0) length = 0;
536 myAlignments.setSize(length);
543 auto && _curentry = myAlignments(i);
545 _curentry.align_enabled =
true;
546 if (
true && ( (!(((getUseAlignments()==0)))) ) )
547 graph->
evalOpParmInst(_curentry.align_enabled, nodeidx,
"align_enabled#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
548 _curentry.align_group =
""_UTsh;
549 if (
true && ( (!(((getUseAlignments()==0)))) ) )
550 graph->
evalOpParmInst(_curentry.align_group, nodeidx,
"align_group#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
551 _curentry.align_axis = 0;
552 if (
true && ( (!(((getUseAlignments()==0)))) ) )
553 graph->
evalOpParmInst(_curentry.align_axis, nodeidx,
"align_axis#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
558 myAlignments.clear();
559 myUseStraightenings =
true;
561 graph->
evalOpParm(myUseStraightenings, nodeidx,
"usestraightenings", time, graph->
isDirect()?
nullptr:depnode);
562 if (
true && ( (!(((getUseStraightenings()==0)))) ) )
565 graph->
evalOpParm(length, nodeidx,
"straightenings", time, graph->
isDirect()?
nullptr:depnode);
566 if (length < 0) length = 0;
567 myStraightenings.setSize(length);
574 auto && _curentry = myStraightenings(i);
576 _curentry.straight_enabled =
true;
577 if (
true && ( (!(((getUseStraightenings()==0)))) ) )
578 graph->
evalOpParmInst(_curentry.straight_enabled, nodeidx,
"straight_enabled#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
579 _curentry.straight_group =
""_UTsh;
580 if (
true && ( (!(((getUseStraightenings()==0)))) ) )
581 graph->
evalOpParmInst(_curentry.straight_group, nodeidx,
"straight_group#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
586 myStraightenings.clear();
587 myManualLayout =
true;
589 graph->
evalOpParm(myManualLayout, nodeidx,
"manuallayout", time, graph->
isDirect()?
nullptr:depnode);
590 myLayoutSeams =
""_UTsh;
591 if (
true && ( (
true&&!(((getManualLayout()==0)))) ) )
592 graph->
evalOpParm(myLayoutSeams, nodeidx,
"layoutseamgroup", time, graph->
isDirect()?
nullptr:depnode);
593 if (
true && ( (!(((getManualLayout()==0))||((getManualLayout()==0)))) ) )
597 if (length < 0) length = 0;
598 myLpins.setSize(length);
605 auto && _curentry = myLpins(i);
608 if (
true && ( (!(((getManualLayout()==0))||((getManualLayout()==0)))) ) && ( (
true&&!(((getManualLayout()==0)))) ) )
609 graph->
evalOpParmInst(_curentry.lprimvert, nodeidx,
"lprimvert#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
611 if (
true && ( (!(((getManualLayout()==0))||((getManualLayout()==0)))) ) && ( (
true&&!(((getManualLayout()==0)))) ) )
612 graph->
evalOpParmInst(_curentry.lpinuv, nodeidx,
"lpinuv#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
614 if (
true && ( (!(((getManualLayout()==0))||((getManualLayout()==0)))) ) && ( (
true&&!(((getManualLayout()==0)))) ) )
615 graph->
evalOpParmInst(_curentry.lpinrefuv, nodeidx,
"lpinrefuv#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
621 if (
true && ( (!(((getManualLayout()==0))||((getManualLayout()==0)))) ) )
624 graph->
evalOpParm(length, nodeidx,
"lalignments", time, graph->
isDirect()?
nullptr:depnode);
625 if (length < 0) length = 0;
626 myLalignments.setSize(length);
633 auto && _curentry = myLalignments(i);
635 _curentry.lalign_group =
""_UTsh;
636 if (
true && ( (!(((getManualLayout()==0))||((getManualLayout()==0)))) ) && ( (
true&&!(((getManualLayout()==0)))) ) )
637 graph->
evalOpParmInst(_curentry.lalign_group, nodeidx,
"lalign_group#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
638 _curentry.lalign_axis = 0;
639 if (
true && ( (!(((getManualLayout()==0))||((getManualLayout()==0)))) ) && ( (
true&&!(((getManualLayout()==0)))) ) )
640 graph->
evalOpParmInst(_curentry.lalign_axis, nodeidx,
"lalign_axis#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
645 myLalignments.clear();
646 if (
true && ( (!(((getManualLayout()==0))||((getManualLayout()==0)))) ) )
649 graph->
evalOpParm(length, nodeidx,
"lstraightenings", time, graph->
isDirect()?
nullptr:depnode);
650 if (length < 0) length = 0;
651 myLstraightenings.setSize(length);
658 auto && _curentry = myLstraightenings(i);
660 _curentry.lstraight_group =
""_UTsh;
661 if (
true && ( (!(((getManualLayout()==0))||((getManualLayout()==0)))) ) && ( (
true&&!(((getManualLayout()==0)))) ) )
662 graph->
evalOpParmInst(_curentry.lstraight_group, nodeidx,
"lstraight_group#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
667 myLstraightenings.clear();
668 myUseOutputSeams =
false;
670 graph->
evalOpParm(myUseOutputSeams, nodeidx,
"useoutputseams", time, graph->
isDirect()?
nullptr:depnode);
671 myOutputSeams =
"outputseams"_UTsh;
672 if (
true && ( (
true&&!(((getUseOutputSeams()==0)))) ) )
673 graph->
evalOpParm(myOutputSeams, nodeidx,
"outputseams", time, graph->
isDirect()?
nullptr:depnode);
674 myUseOutputConstrIslands =
false;
676 graph->
evalOpParm(myUseOutputConstrIslands, nodeidx,
"useoutputconstrislands", time, graph->
isDirect()?
nullptr:depnode);
677 myOutputConstrIslands =
"constrainedprims"_UTsh;
678 if (
true && ( (
true&&!(((getUseOutputConstrIslands()==0)))) ) )
679 graph->
evalOpParm(myOutputConstrIslands, nodeidx,
"outputconstrislands", time, graph->
isDirect()?
nullptr:depnode);
682 graph->
evalOpParm(myBBoxCenter, nodeidx,
"bboxcenter", time, graph->
isDirect()?
nullptr:depnode);
685 graph->
evalOpParm(myBBoxSize, nodeidx,
"bboxsize", time, graph->
isDirect()?
nullptr:depnode);
701 template <
typename T>
708 if (idx.
size() != instance.
size()+1)
713 coerceValue(value, myGroup);
716 coerceValue(value, myUVAttrib);
719 coerceValue(value, myMethod);
722 coerceValue(value, myKeepExistingSeams);
725 coerceValue(value, myKeepExistingLayout);
728 coerceValue(value, myPinBoundaries);
731 coerceValue(value, mySeams);
734 coerceValue(value, myUsePins);
738 coerceValue(value, myPins.entries());
739 else if (instance[0] < myPins.entries())
741 auto && _data = myPins(instance[0]);
745 coerceValue(value, _data.usepin);
748 coerceValue(value, _data.primvert);
751 coerceValue(value, _data.pinuv);
754 coerceValue(value, _data.pinrefuv);
761 coerceValue(value, myUseAlignments);
765 coerceValue(value, myAlignments.entries());
766 else if (instance[0] < myAlignments.entries())
768 auto && _data = myAlignments(instance[0]);
772 coerceValue(value, _data.align_enabled);
775 coerceValue(value, _data.align_group);
778 coerceValue(value, _data.align_axis);
785 coerceValue(value, myUseStraightenings);
789 coerceValue(value, myStraightenings.entries());
790 else if (instance[0] < myStraightenings.entries())
792 auto && _data = myStraightenings(instance[0]);
796 coerceValue(value, _data.straight_enabled);
799 coerceValue(value, _data.straight_group);
806 coerceValue(value, myManualLayout);
809 coerceValue(value, myLayoutSeams);
813 coerceValue(value, myLpins.entries());
814 else if (instance[0] < myLpins.entries())
816 auto && _data = myLpins(instance[0]);
820 coerceValue(value, _data.lprimvert);
823 coerceValue(value, _data.lpinuv);
826 coerceValue(value, _data.lpinrefuv);
834 coerceValue(value, myLalignments.entries());
835 else if (instance[0] < myLalignments.entries())
837 auto && _data = myLalignments(instance[0]);
841 coerceValue(value, _data.lalign_group);
844 coerceValue(value, _data.lalign_axis);
852 coerceValue(value, myLstraightenings.entries());
853 else if (instance[0] < myLstraightenings.entries())
855 auto && _data = myLstraightenings(instance[0]);
859 coerceValue(value, _data.lstraight_group);
866 coerceValue(value, myUseOutputSeams);
869 coerceValue(value, myOutputSeams);
872 coerceValue(value, myUseOutputConstrIslands);
875 coerceValue(value, myOutputConstrIslands);
878 coerceValue(value, myBBoxCenter);
881 coerceValue(value, myBBoxSize);
897 { doGetParmValue(idx, instance, value); }
899 { doGetParmValue(idx, instance, value); }
901 { doGetParmValue(idx, instance, value); }
903 { doGetParmValue(idx, instance, value); }
905 { doGetParmValue(idx, instance, value); }
907 { doGetParmValue(idx, instance, value); }
909 { doGetParmValue(idx, instance, value); }
911 { doGetParmValue(idx, instance, value); }
913 { doGetParmValue(idx, instance, value); }
915 { doGetParmValue(idx, instance, value); }
917 { doGetParmValue(idx, instance, value); }
919 template <
typename T>
926 if (idx.
size() != instance.
size()+1)
931 coerceValue(myGroup, ( ( value ) ));
934 coerceValue(myUVAttrib, ( ( value ) ));
937 coerceValue(myMethod, clampMinValue(0, clampMaxValue(1, value ) ));
940 coerceValue(myKeepExistingSeams, ( ( value ) ));
943 coerceValue(myKeepExistingLayout, ( ( value ) ));
946 coerceValue(myPinBoundaries, ( ( value ) ));
949 coerceValue(mySeams, ( ( value ) ));
952 coerceValue(myUsePins, ( ( value ) ));
958 coerceValue(newsize, value);
959 if (newsize < 0) newsize = 0;
960 myPins.setSize(newsize);
966 myPins.setSizeIfNeeded(instance[0]+1);
967 auto && _data = myPins(instance[0]);
971 coerceValue(_data.usepin, value);
974 coerceValue(_data.primvert, value);
977 coerceValue(_data.pinuv, value);
980 coerceValue(_data.pinrefuv, value);
987 coerceValue(myUseAlignments, ( ( value ) ));
993 coerceValue(newsize, value);
994 if (newsize < 0) newsize = 0;
995 myAlignments.setSize(newsize);
1001 myAlignments.setSizeIfNeeded(instance[0]+1);
1002 auto && _data = myAlignments(instance[0]);
1006 coerceValue(_data.align_enabled, value);
1009 coerceValue(_data.align_group, value);
1012 coerceValue(_data.align_axis, value);
1019 coerceValue(myUseStraightenings, ( ( value ) ));
1022 if (idx.
size() == 1)
1025 coerceValue(newsize, value);
1026 if (newsize < 0) newsize = 0;
1027 myStraightenings.setSize(newsize);
1031 if (instance[0] < 0)
1033 myStraightenings.setSizeIfNeeded(instance[0]+1);
1034 auto && _data = myStraightenings(instance[0]);
1038 coerceValue(_data.straight_enabled, value);
1041 coerceValue(_data.straight_group, value);
1048 coerceValue(myManualLayout, ( ( value ) ));
1051 coerceValue(myLayoutSeams, ( ( value ) ));
1054 if (idx.
size() == 1)
1057 coerceValue(newsize, value);
1058 if (newsize < 0) newsize = 0;
1059 myLpins.setSize(newsize);
1063 if (instance[0] < 0)
1065 myLpins.setSizeIfNeeded(instance[0]+1);
1066 auto && _data = myLpins(instance[0]);
1070 coerceValue(_data.lprimvert, value);
1073 coerceValue(_data.lpinuv, value);
1076 coerceValue(_data.lpinrefuv, value);
1083 if (idx.
size() == 1)
1086 coerceValue(newsize, value);
1087 if (newsize < 0) newsize = 0;
1088 myLalignments.setSize(newsize);
1092 if (instance[0] < 0)
1094 myLalignments.setSizeIfNeeded(instance[0]+1);
1095 auto && _data = myLalignments(instance[0]);
1099 coerceValue(_data.lalign_group, value);
1102 coerceValue(_data.lalign_axis, value);
1109 if (idx.
size() == 1)
1112 coerceValue(newsize, value);
1113 if (newsize < 0) newsize = 0;
1114 myLstraightenings.setSize(newsize);
1118 if (instance[0] < 0)
1120 myLstraightenings.setSizeIfNeeded(instance[0]+1);
1121 auto && _data = myLstraightenings(instance[0]);
1125 coerceValue(_data.lstraight_group, value);
1132 coerceValue(myUseOutputSeams, ( ( value ) ));
1135 coerceValue(myOutputSeams, ( ( value ) ));
1138 coerceValue(myUseOutputConstrIslands, ( ( value ) ));
1141 coerceValue(myOutputConstrIslands, ( ( value ) ));
1144 coerceValue(myBBoxCenter, ( ( value ) ));
1147 coerceValue(myBBoxSize, clampMinValue(0, ( value ) ));
1154 { doSetParmValue(idx, instance, value); }
1156 { doSetParmValue(idx, instance, value); }
1158 { doSetParmValue(idx, instance, value); }
1160 { doSetParmValue(idx, instance, value); }
1162 { doSetParmValue(idx, instance, value); }
1164 { doSetParmValue(idx, instance, value); }
1166 { doSetParmValue(idx, instance, value); }
1168 { doSetParmValue(idx, instance, value); }
1170 { doSetParmValue(idx, instance, value); }
1172 { doSetParmValue(idx, instance, value); }
1174 { doSetParmValue(idx, instance, value); }
1178 if (idx.
size() == 0)
1202 if (fieldnum.
size() < 1)
1204 switch (fieldnum[0])
1213 return "keepexistingseams";
1215 return "keepexistinglayout";
1217 return "pinboundaries";
1223 if (fieldnum.
size() == 1)
1225 switch (fieldnum[1])
1239 return "usealignments";
1241 if (fieldnum.
size() == 1)
1242 return "alignments";
1243 switch (fieldnum[1])
1246 return "align_enabled#";
1248 return "align_group#";
1250 return "align_axis#";
1255 return "usestraightenings";
1257 if (fieldnum.
size() == 1)
1258 return "straightenings";
1259 switch (fieldnum[1])
1262 return "straight_enabled#";
1264 return "straight_group#";
1269 return "manuallayout";
1271 return "layoutseamgroup";
1273 if (fieldnum.
size() == 1)
1275 switch (fieldnum[1])
1278 return "lprimvert#";
1282 return "lpinrefuv#";
1287 if (fieldnum.
size() == 1)
1288 return "lalignments";
1289 switch (fieldnum[1])
1292 return "lalign_group#";
1294 return "lalign_axis#";
1299 if (fieldnum.
size() == 1)
1300 return "lstraightenings";
1301 switch (fieldnum[1])
1304 return "lstraight_group#";
1309 return "useoutputseams";
1311 return "outputseams";
1313 return "useoutputconstrislands";
1315 return "outputconstrislands";
1317 return "bboxcenter";
1327 if (fieldnum.
size() < 1)
1328 return PARM_UNSUPPORTED;
1329 switch (fieldnum[0])
1336 return PARM_INTEGER;
1338 return PARM_INTEGER;
1340 return PARM_INTEGER;
1342 return PARM_INTEGER;
1346 return PARM_INTEGER;
1348 if (fieldnum.
size() == 1)
1349 return PARM_MULTIPARM;
1350 switch (fieldnum[1])
1353 return PARM_INTEGER;
1355 return PARM_VECTOR2;
1357 return PARM_VECTOR2;
1359 return PARM_VECTOR2;
1362 return PARM_UNSUPPORTED;
1364 return PARM_INTEGER;
1366 if (fieldnum.
size() == 1)
1367 return PARM_MULTIPARM;
1368 switch (fieldnum[1])
1371 return PARM_INTEGER;
1375 return PARM_INTEGER;
1378 return PARM_UNSUPPORTED;
1380 return PARM_INTEGER;
1382 if (fieldnum.
size() == 1)
1383 return PARM_MULTIPARM;
1384 switch (fieldnum[1])
1387 return PARM_INTEGER;
1392 return PARM_UNSUPPORTED;
1394 return PARM_INTEGER;
1398 if (fieldnum.
size() == 1)
1399 return PARM_MULTIPARM;
1400 switch (fieldnum[1])
1403 return PARM_VECTOR2;
1405 return PARM_VECTOR2;
1407 return PARM_VECTOR2;
1410 return PARM_UNSUPPORTED;
1412 if (fieldnum.
size() == 1)
1413 return PARM_MULTIPARM;
1414 switch (fieldnum[1])
1419 return PARM_INTEGER;
1422 return PARM_UNSUPPORTED;
1424 if (fieldnum.
size() == 1)
1425 return PARM_MULTIPARM;
1426 switch (fieldnum[1])
1432 return PARM_UNSUPPORTED;
1434 return PARM_INTEGER;
1438 return PARM_INTEGER;
1442 return PARM_VECTOR2;
1444 return PARM_VECTOR2;
1447 return PARM_UNSUPPORTED;
1452 { is.
bread(&v, 1); }
1483 loadData(is, rampdata);
1501 int typelen = colon - data.
buffer();
1513 { UTwrite(os, &v); }
1515 {
int64 iv =
v; UTwrite(os, &iv); }
1517 { UTwrite<fpreal64>(os, &
v); }
1519 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
1521 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1522 UTwrite<fpreal64>(os, &v.
z()); }
1524 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1525 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
1537 if (s) s->save(ostr);
1538 result = ostr.
str();
1539 saveData(os, result);
1546 ostr << s->getDataTypeToken();
1548 s->saveBinary(ostr);
1550 result = ostr.
str();
1551 saveData(os, result);
1559 saveData(os, myGroup);
1560 saveData(os, myUVAttrib);
1561 saveData(os, myMethod);
1562 saveData(os, myKeepExistingSeams);
1563 saveData(os, myKeepExistingLayout);
1564 saveData(os, myPinBoundaries);
1565 saveData(os, mySeams);
1566 saveData(os, myUsePins);
1569 UTwrite(os, &length);
1572 auto && _curentry = myPins(i);
1574 saveData(os, _curentry.usepin);
1575 saveData(os, _curentry.primvert);
1576 saveData(os, _curentry.pinuv);
1577 saveData(os, _curentry.pinrefuv);
1581 saveData(os, myUseAlignments);
1584 UTwrite(os, &length);
1587 auto && _curentry = myAlignments(i);
1589 saveData(os, _curentry.align_enabled);
1590 saveData(os, _curentry.align_group);
1591 saveData(os, _curentry.align_axis);
1595 saveData(os, myUseStraightenings);
1598 UTwrite(os, &length);
1601 auto && _curentry = myStraightenings(i);
1603 saveData(os, _curentry.straight_enabled);
1604 saveData(os, _curentry.straight_group);
1608 saveData(os, myManualLayout);
1609 saveData(os, myLayoutSeams);
1612 UTwrite(os, &length);
1615 auto && _curentry = myLpins(i);
1617 saveData(os, _curentry.lprimvert);
1618 saveData(os, _curentry.lpinuv);
1619 saveData(os, _curentry.lpinrefuv);
1625 UTwrite(os, &length);
1628 auto && _curentry = myLalignments(i);
1630 saveData(os, _curentry.lalign_group);
1631 saveData(os, _curentry.lalign_axis);
1637 UTwrite(os, &length);
1640 auto && _curentry = myLstraightenings(i);
1642 saveData(os, _curentry.lstraight_group);
1646 saveData(os, myUseOutputSeams);
1647 saveData(os, myOutputSeams);
1648 saveData(os, myUseOutputConstrIslands);
1649 saveData(os, myOutputConstrIslands);
1650 saveData(os, myBBoxCenter);
1651 saveData(os, myBBoxSize);
1664 loadData(is, myGroup);
1665 loadData(is, myUVAttrib);
1666 loadData(is, myMethod);
1667 loadData(is, myKeepExistingSeams);
1668 loadData(is, myKeepExistingLayout);
1669 loadData(is, myPinBoundaries);
1670 loadData(is, mySeams);
1671 loadData(is, myUsePins);
1674 is.
read(&length, 1);
1675 myPins.setSize(length);
1678 auto && _curentry = myPins(i);
1680 loadData(is, _curentry.usepin);
1681 loadData(is, _curentry.primvert);
1682 loadData(is, _curentry.pinuv);
1683 loadData(is, _curentry.pinrefuv);
1687 loadData(is, myUseAlignments);
1690 is.
read(&length, 1);
1691 myAlignments.setSize(length);
1694 auto && _curentry = myAlignments(i);
1696 loadData(is, _curentry.align_enabled);
1697 loadData(is, _curentry.align_group);
1698 loadData(is, _curentry.align_axis);
1702 loadData(is, myUseStraightenings);
1705 is.
read(&length, 1);
1706 myStraightenings.setSize(length);
1709 auto && _curentry = myStraightenings(i);
1711 loadData(is, _curentry.straight_enabled);
1712 loadData(is, _curentry.straight_group);
1716 loadData(is, myManualLayout);
1717 loadData(is, myLayoutSeams);
1720 is.
read(&length, 1);
1721 myLpins.setSize(length);
1724 auto && _curentry = myLpins(i);
1726 loadData(is, _curentry.lprimvert);
1727 loadData(is, _curentry.lpinuv);
1728 loadData(is, _curentry.lpinrefuv);
1734 is.
read(&length, 1);
1735 myLalignments.setSize(length);
1738 auto && _curentry = myLalignments(i);
1740 loadData(is, _curentry.lalign_group);
1741 loadData(is, _curentry.lalign_axis);
1747 is.
read(&length, 1);
1748 myLstraightenings.setSize(length);
1751 auto && _curentry = myLstraightenings(i);
1753 loadData(is, _curentry.lstraight_group);
1757 loadData(is, myUseOutputSeams);
1758 loadData(is, myOutputSeams);
1759 loadData(is, myUseOutputConstrIslands);
1760 loadData(is, myOutputConstrIslands);
1761 loadData(is, myBBoxCenter);
1762 loadData(is, myBBoxSize);
1772 if (!thissop)
return getGroup();
1774 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
1782 if (!thissop)
return getUVAttrib();
1784 OP_Utils::evalOpParm(result, thissop,
"uvattrib", cookparms.
getCookTime(), 0);
1792 if (!thissop)
return getMethod();
1794 OP_Utils::evalOpParm(result, thissop,
"method", cookparms.
getCookTime(), 0);
1802 if (!thissop)
return getKeepExistingSeams();
1804 OP_Utils::evalOpParm(result, thissop,
"keepexistingseams", cookparms.
getCookTime(), 0);
1812 if (!thissop)
return getKeepExistingLayout();
1814 OP_Utils::evalOpParm(result, thissop,
"keepexistinglayout", cookparms.
getCookTime(), 0);
1822 if (!thissop)
return getPinBoundaries();
1824 OP_Utils::evalOpParm(result, thissop,
"pinboundaries", cookparms.
getCookTime(), 0);
1832 if (!thissop)
return getSeams();
1834 OP_Utils::evalOpParm(result, thissop,
"seamgroup", cookparms.
getCookTime(), 0);
1842 if (!thissop)
return getUsePins();
1844 OP_Utils::evalOpParm(result, thissop,
"usepins", cookparms.
getCookTime(), 0);
1852 if (!thissop)
return getPins().entries();
1854 OP_Utils::evalOpParm(result, thissop,
"pins", cookparms.
getCookTime(), 0);
1858 {
return opinstPins_usepin(cookparms, &_idx); }
1862 if (!thissop)
return (myPins(_idx[0]).usepin);
1864 _parmidx[1-1] = _idx[1-1] + 0;
1867 OP_Utils::evalOpParmInst(result, thissop,
"usepin#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1871 {
return opinstPins_primvert(cookparms, &_idx); }
1875 if (!thissop)
return (myPins(_idx[0]).primvert);
1877 _parmidx[1-1] = _idx[1-1] + 0;
1880 OP_Utils::evalOpParmInst(result, thissop,
"primvert#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1884 {
return opinstPins_pinuv(cookparms, &_idx); }
1888 if (!thissop)
return (myPins(_idx[0]).pinuv);
1890 _parmidx[1-1] = _idx[1-1] + 0;
1893 OP_Utils::evalOpParmInst(result, thissop,
"pinuv#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1897 {
return opinstPins_pinrefuv(cookparms, &_idx); }
1901 if (!thissop)
return (myPins(_idx[0]).pinrefuv);
1903 _parmidx[1-1] = _idx[1-1] + 0;
1906 OP_Utils::evalOpParmInst(result, thissop,
"pinrefuv#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1915 if (!thissop)
return getUseAlignments();
1917 OP_Utils::evalOpParm(result, thissop,
"usealignments", cookparms.
getCookTime(), 0);
1925 if (!thissop)
return getAlignments().entries();
1927 OP_Utils::evalOpParm(result, thissop,
"alignments", cookparms.
getCookTime(), 0);
1931 {
return opinstAlignments_align_enabled(cookparms, &_idx); }
1935 if (!thissop)
return (myAlignments(_idx[0]).align_enabled);
1937 _parmidx[1-1] = _idx[1-1] + 0;
1940 OP_Utils::evalOpParmInst(result, thissop,
"align_enabled#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1944 {
return opinstAlignments_align_group(cookparms, &_idx); }
1948 if (!thissop)
return (myAlignments(_idx[0]).align_group);
1950 _parmidx[1-1] = _idx[1-1] + 0;
1953 OP_Utils::evalOpParmInst(result, thissop,
"align_group#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1957 {
return opinstAlignments_align_axis(cookparms, &_idx); }
1961 if (!thissop)
return (myAlignments(_idx[0]).align_axis);
1963 _parmidx[1-1] = _idx[1-1] + 0;
1966 OP_Utils::evalOpParmInst(result, thissop,
"align_axis#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1975 if (!thissop)
return getUseStraightenings();
1977 OP_Utils::evalOpParm(result, thissop,
"usestraightenings", cookparms.
getCookTime(), 0);
1985 if (!thissop)
return getStraightenings().entries();
1987 OP_Utils::evalOpParm(result, thissop,
"straightenings", cookparms.
getCookTime(), 0);
1991 {
return opinstStraightenings_straight_enabled(cookparms, &_idx); }
1995 if (!thissop)
return (myStraightenings(_idx[0]).straight_enabled);
1997 _parmidx[1-1] = _idx[1-1] + 0;
2000 OP_Utils::evalOpParmInst(result, thissop,
"straight_enabled#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2004 {
return opinstStraightenings_straight_group(cookparms, &_idx); }
2008 if (!thissop)
return (myStraightenings(_idx[0]).straight_group);
2010 _parmidx[1-1] = _idx[1-1] + 0;
2013 OP_Utils::evalOpParmInst(result, thissop,
"straight_group#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2022 if (!thissop)
return getManualLayout();
2024 OP_Utils::evalOpParm(result, thissop,
"manuallayout", cookparms.
getCookTime(), 0);
2032 if (!thissop)
return getLayoutSeams();
2034 OP_Utils::evalOpParm(result, thissop,
"layoutseamgroup", cookparms.
getCookTime(), 0);
2042 if (!thissop)
return getLpins().entries();
2044 OP_Utils::evalOpParm(result, thissop,
"lpins", cookparms.
getCookTime(), 0);
2048 {
return opinstLpins_lprimvert(cookparms, &_idx); }
2052 if (!thissop)
return (myLpins(_idx[0]).lprimvert);
2054 _parmidx[1-1] = _idx[1-1] + 0;
2057 OP_Utils::evalOpParmInst(result, thissop,
"lprimvert#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2061 {
return opinstLpins_lpinuv(cookparms, &_idx); }
2065 if (!thissop)
return (myLpins(_idx[0]).lpinuv);
2067 _parmidx[1-1] = _idx[1-1] + 0;
2070 OP_Utils::evalOpParmInst(result, thissop,
"lpinuv#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2074 {
return opinstLpins_lpinrefuv(cookparms, &_idx); }
2078 if (!thissop)
return (myLpins(_idx[0]).lpinrefuv);
2080 _parmidx[1-1] = _idx[1-1] + 0;
2083 OP_Utils::evalOpParmInst(result, thissop,
"lpinrefuv#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2092 if (!thissop)
return getLalignments().entries();
2094 OP_Utils::evalOpParm(result, thissop,
"lalignments", cookparms.
getCookTime(), 0);
2098 {
return opinstLalignments_lalign_group(cookparms, &_idx); }
2102 if (!thissop)
return (myLalignments(_idx[0]).lalign_group);
2104 _parmidx[1-1] = _idx[1-1] + 0;
2107 OP_Utils::evalOpParmInst(result, thissop,
"lalign_group#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2111 {
return opinstLalignments_lalign_axis(cookparms, &_idx); }
2115 if (!thissop)
return (myLalignments(_idx[0]).lalign_axis);
2117 _parmidx[1-1] = _idx[1-1] + 0;
2120 OP_Utils::evalOpParmInst(result, thissop,
"lalign_axis#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2129 if (!thissop)
return getLstraightenings().entries();
2131 OP_Utils::evalOpParm(result, thissop,
"lstraightenings", cookparms.
getCookTime(), 0);
2135 {
return opinstLstraightenings_lstraight_group(cookparms, &_idx); }
2139 if (!thissop)
return (myLstraightenings(_idx[0]).lstraight_group);
2141 _parmidx[1-1] = _idx[1-1] + 0;
2144 OP_Utils::evalOpParmInst(result, thissop,
"lstraight_group#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2153 if (!thissop)
return getUseOutputSeams();
2155 OP_Utils::evalOpParm(result, thissop,
"useoutputseams", cookparms.
getCookTime(), 0);
2163 if (!thissop)
return getOutputSeams();
2165 OP_Utils::evalOpParm(result, thissop,
"outputseams", cookparms.
getCookTime(), 0);
2173 if (!thissop)
return getUseOutputConstrIslands();
2175 OP_Utils::evalOpParm(result, thissop,
"useoutputconstrislands", cookparms.
getCookTime(), 0);
2183 if (!thissop)
return getOutputConstrIslands();
2185 OP_Utils::evalOpParm(result, thissop,
"outputconstrislands", cookparms.
getCookTime(), 0);
2193 if (!thissop)
return getBBoxCenter();
2195 OP_Utils::evalOpParm(result, thissop,
"bboxcenter", cookparms.
getCookTime(), 0);
2203 if (!thissop)
return getBBoxSize();
2205 OP_Utils::evalOpParm(result, thissop,
"bboxsize", cookparms.
getCookTime(), 0);
2213 bool myKeepExistingSeams;
2214 bool myKeepExistingLayout;
2215 bool myPinBoundaries;
2219 bool myUseAlignments;
2221 bool myUseStraightenings;
2223 bool myManualLayout;
2228 bool myUseOutputSeams;
2230 bool myUseOutputConstrIslands;
static void loadData(UT_IStream &is, bool &v)
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
bool getUseStraightenings() const
static void saveData(std::ostream &os, int64 v)
bool operator==(const SOP_UVFlatten_2_0Parms &src) const
UT_Vector2D opBBoxCenter(const SOP_NodeVerb::CookParms &cookparms) const
GLenum GLuint GLenum GLsizei const GLchar * buf
UT_Vector2D opPins_primvert(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
SOP_Node * getNode() const
exint getNestNumParms(TempIndex idx) const override
static void loadData(UT_IStream &is, UT_Matrix4D &v)
const UT_Array< Lstraightenings > & getLstraightenings() const
static void saveData(std::ostream &os, bool v)
bool opPins_usepin(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
UT_StringHolder createString(const UT_Array< Pins > &list) const
UT_StringHolder opinstLstraightenings_lstraight_group(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void setLstraightenings(const UT_Array< Lstraightenings > &val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
UT_StringHolder opOutputSeams(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector2D opinstLpins_lpinrefuv(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
exint bread(int32 *buffer, exint asize=1)
bool opAlignments_align_enabled(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
UT_Vector2D opLpins_lprimvert(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool opUsePins(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder lstraight_group
static void loadData(UT_IStream &is, int64 &v)
UT_Vector2T< fpreal64 > UT_Vector2D
UT_Vector2D opPins_pinuv(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
GLsizei const GLfloat * value
bool operator==(const Lpins &src) const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
void loadFromOpSubclass(const LoadParms &loadparms) override
UT_Vector2D opBBoxSize(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector2D getBBoxCenter() const
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
const OP_Context & context() const
bool load(UT_IStream &is)
constexpr SYS_FORCE_INLINE T & z() noexcept
void setUseOutputConstrIslands(bool val)
static void loadData(UT_IStream &is, UT_Vector4D &v)
UT_StringHolder createString(const UT_Array< Alignments > &list) const
static void saveData(std::ostream &os, UT_StringHolder s)
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
SYS_FORCE_INLINE const char * buffer() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
bool operator==(const Pins &src) const
bool opKeepExistingSeams(const SOP_NodeVerb::CookParms &cookparms) const
bool opPinBoundaries(const SOP_NodeVerb::CookParms &cookparms) const
GLuint GLsizei GLsizei * length
UT_Vector2D opinstPins_pinrefuv(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
An output stream object that owns its own string buffer storage.
bool operator==(const Alignments &src) const
static void saveData(std::ostream &os, UT_Matrix2D v)
static void saveData(std::ostream &os, UT_Matrix3D v)
bool getUseOutputSeams() const
const UT_Array< Lpins > & getLpins() const
**But if you need a result
const UT_StringHolder & getGroup() const
UT_Vector2D opinstLpins_lprimvert(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
exint opPins(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, fpreal64 &v)
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
UT_StringHolder align_group
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
const UT_Array< Lalignments > & getLalignments() const
UT_StringHolder opAlignments_align_group(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
UT_StringHolder opLayoutSeams(const SOP_NodeVerb::CookParms &cookparms) const
void setOutputConstrIslands(const UT_StringHolder &val)
UT_StringHolder createString(const UT_Array< Lstraightenings > &list) const
bool operator!=(const Lstraightenings &src) const
void setLpins(const UT_Array< Lpins > &val)
constexpr SYS_FORCE_INLINE T & x() noexcept
exint opLstraightenings(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Matrix3D &v)
UT_StringHolder opLstraightenings_lstraight_group(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
GLuint GLsizei const GLuint const GLintptr * offsets
UT_Vector2D opinstPins_pinuv(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
exint opAlignments(const SOP_NodeVerb::CookParms &cookparms) const
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
constexpr SYS_FORCE_INLINE T & x() noexcept
bool opinstPins_usepin(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void saveData(std::ostream &os, UT_Matrix4D v)
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
void setBBoxCenter(UT_Vector2D val)
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
static void loadData(UT_IStream &is, UT_Vector4I &v)
static void loadData(UT_IStream &is, UT_Vector3D &v)
UT_StringHolder opStraightenings_straight_group(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
exint opLalignments(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opOutputConstrIslands(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
void copyFrom(const OP_NodeParms *src) override
int64 opAlignments_align_axis(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
void setUseStraightenings(bool val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
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
bool operator!=(const Pins &src) const
const UT_Array< Alignments > & getAlignments() const
exint read(bool *array, exint sz=1)
UT_StringHolder opinstAlignments_align_group(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
const OP_GraphProxy * graph() const
void setManualLayout(bool val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
const UT_StringHolder & getUVAttrib() const
static void saveData(std::ostream &os, UT_Vector2D v)
void setKeepExistingSeams(bool val)
bool operator!=(const Lpins &src) const
UT_StringHolder createString(const UT_Array< Lalignments > &list) const
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
const UT_Array< Pins > & getPins() const
void setAlignments(const UT_Array< Alignments > &val)
void setUseAlignments(bool val)
void setBBoxSize(UT_Vector2D val)
UT_Vector2D getBBoxSize() const
bool opUseAlignments(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
bool getPinBoundaries() const
bool opKeepExistingLayout(const SOP_NodeVerb::CookParms &cookparms) const
int64 opLalignments_lalign_axis(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool opUseStraightenings(const SOP_NodeVerb::CookParms &cookparms) const
bool isParmColorRamp(exint idx) const override
void setUsePins(bool val)
UT_Vector2D opPins_pinrefuv(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
const UT_StringHolder & getOutputConstrIslands() const
bool operator!=(const Alignments &src) const
UT_StringHolder straight_group
ParmType getNestParmType(TempIndex fieldnum) const override
SYS_FORCE_INLINE UT_StringHolder getToken(Method enum_value)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
UT_StringHolder createString(const UT_Array< Straightenings > &list) const
static void loadData(UT_IStream &is, UT_StringHolder &v)
bool operator!=(const Lalignments &src) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
SYS_FORCE_INLINE void strcat(const char *src)
bool opUseOutputConstrIslands(const SOP_NodeVerb::CookParms &cookparms) const
void saveBinary(std::ostream &os) const
Save string to binary stream.
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
bool getManualLayout() const
bool operator!=(const Straightenings &src) const
GT_API const UT_StringHolder version
bool opinstStraightenings_straight_enabled(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void saveData(std::ostream &os, fpreal64 v)
void setPins(const UT_Array< Pins > &val)
exint entries() const
Alias of size(). size() is preferred.
void setUseOutputSeams(bool val)
exint opLpins(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder lalign_group
const char * getNestParmName(TempIndex fieldnum) const override
const UT_StringHolder & getSeams() const
const UT_StringHolder & getLayoutSeams() const
int int appendSprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
void setStraightenings(const UT_Array< Straightenings > &val)
UT_StringHolder opinstLalignments_lalign_group(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
UT_StringHolder createString(const UT_Array< Lpins > &list) const
void setGroup(const UT_StringHolder &val)
void setPinBoundaries(bool val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
bool getKeepExistingSeams() const
bool opManualLayout(const SOP_NodeVerb::CookParms &cookparms) const
Method opMethod(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
void setOutputSeams(const UT_StringHolder &val)
UT_Vector2D opLpins_lpinrefuv(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
DEP_MicroNode * depnode() const
LeafData & operator=(const LeafData &)=delete
bool getUseOutputConstrIslands() const
Utility class for containing a color ramp.
UT_StringHolder opinstStraightenings_straight_group(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
const UT_Array< Straightenings > & getStraightenings() const
void setUVAttrib(const UT_StringHolder &val)
constexpr SYS_FORCE_INLINE T & w() noexcept
SYS_FORCE_INLINE void append(char character)
static void loadData(UT_IStream &is, UT_Vector2D &v)
void setLayoutSeams(const UT_StringHolder &val)
UT_StringHolder opUVAttrib(const SOP_NodeVerb::CookParms &cookparms) const
virtual UT_StringHolder baseGetSignature() const
bool opUseOutputSeams(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getOutputSeams() const
exint opStraightenings(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector2D opinstLpins_lpinuv(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
bool operator==(const Lalignments &src) const
UT_StringHolder opSeams(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector3I &v)
fpreal getCookTime() const
bool operator!=(const SOP_UVFlatten_2_0Parms &src) const
const char * findChar(int c) const
static void saveData(std::ostream &os, UT_Vector4D v)
void setLalignments(const UT_Array< Lalignments > &val)
static void saveData(std::ostream &os, UT_Vector3D v)
void setKeepExistingLayout(bool val)
bool operator==(const Lstraightenings &src) const
constexpr SYS_FORCE_INLINE T & y() noexcept
void setSeams(const UT_StringHolder &val)
void setMethod(Method val)
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
bool opinstAlignments_align_enabled(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool operator==(const Straightenings &src) const
static void loadData(UT_IStream &is, UT_Vector2I &v)
UT_Vector2D opLpins_lpinuv(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
constexpr SYS_FORCE_INLINE T & y() noexcept
void save(std::ostream &os) const
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
SYS_FORCE_INLINE bool isstring() const
bool getUseAlignments() const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
int64 opinstAlignments_align_axis(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
UT_StringHolder opLalignments_lalign_group(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool opStraightenings_straight_enabled(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
bool getKeepExistingLayout() const
int64 opinstLalignments_lalign_axis(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
UT_Vector2D opinstPins_primvert(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
constexpr SYS_FORCE_INLINE T & x() noexcept