20 using namespace UT::Literal;
23 namespace SOP_UVFlatten_2_0Enums
66 if (usepin != src.
usepin)
return false;
67 if (primvert != src.
primvert)
return false;
68 if (pinuv != src.
pinuv)
return false;
69 if (pinrefuv != src.
pinrefuv)
return false;
85 for (
int i = 0; i < list.
entries(); i++)
93 buf.
appendSprintf(
"(%f, %f)", list(i).primvert.x(), list(i).primvert.y());
95 buf.
appendSprintf(
"(%f, %f)", list(i).pinuv.x(), list(i).pinuv.y());
97 buf.
appendSprintf(
"(%f, %f)", list(i).pinrefuv.x(), list(i).pinrefuv.y());
115 align_enabled =
true;
125 if (align_axis != src.
align_axis)
return false;
141 for (
int i = 0; i < list.
entries(); i++)
147 buf.
appendSprintf(
"%s", (list(i).align_enabled) ?
"true" :
"false");
168 straight_enabled =
true;
169 straight_group =
""_sh;
192 for (
int i = 0; i < list.
entries(); i++)
198 buf.
appendSprintf(
"%s", (list(i).straight_enabled) ?
"true" :
"false");
226 if (lprimvert != src.
lprimvert)
return false;
227 if (lpinuv != src.
lpinuv)
return false;
228 if (lpinrefuv != src.
lpinrefuv)
return false;
244 for (
int i = 0; i < list.
entries(); i++)
250 buf.
appendSprintf(
"(%f, %f)", list(i).lprimvert.x(), list(i).lprimvert.y());
252 buf.
appendSprintf(
"(%f, %f)", list(i).lpinuv.x(), list(i).lpinuv.y());
254 buf.
appendSprintf(
"(%f, %f)", list(i).lpinrefuv.x(), list(i).lpinrefuv.y());
271 lalign_group =
""_sh;
295 for (
int i = 0; i < list.
entries(); i++)
319 lstraight_group =
""_sh;
341 for (
int i = 0; i < list.
entries(); i++)
360 myUVAttrib =
"uv"_sh;
362 myKeepExistingSeams =
false;
363 myKeepExistingLayout =
false;
364 myPinBoundaries =
false;
367 myUseAlignments =
true;
368 myUseStraightenings =
true;
369 myManualLayout =
true;
370 myLayoutSeams =
""_sh;
371 myUseOutputSeams =
false;
372 myOutputSeams =
"outputseams"_sh;
373 myUseOutputConstrIslands =
false;
374 myOutputConstrIslands =
"constrainedprims"_sh;
386 if (myGroup != src.myGroup)
return false;
387 if (myUVAttrib != src.myUVAttrib)
return false;
388 if (myMethod != src.myMethod)
return false;
389 if (myKeepExistingSeams != src.myKeepExistingSeams)
return false;
390 if (myKeepExistingLayout != src.myKeepExistingLayout)
return false;
391 if (myPinBoundaries != src.myPinBoundaries)
return false;
392 if (mySeams != src.mySeams)
return false;
393 if (myUsePins != src.myUsePins)
return false;
394 if (myPins != src.myPins)
return false;
395 if (myUseAlignments != src.myUseAlignments)
return false;
396 if (myAlignments != src.myAlignments)
return false;
397 if (myUseStraightenings != src.myUseStraightenings)
return false;
398 if (myStraightenings != src.myStraightenings)
return false;
399 if (myManualLayout != src.myManualLayout)
return false;
400 if (myLayoutSeams != src.myLayoutSeams)
return false;
401 if (myLpins != src.myLpins)
return false;
402 if (myLalignments != src.myLalignments)
return false;
403 if (myLstraightenings != src.myLstraightenings)
return false;
404 if (myUseOutputSeams != src.myUseOutputSeams)
return false;
405 if (myOutputSeams != src.myOutputSeams)
return false;
406 if (myUseOutputConstrIslands != src.myUseOutputConstrIslands)
return false;
407 if (myOutputConstrIslands != src.myOutputConstrIslands)
return false;
408 if (myBboxCenter != src.myBboxCenter)
return false;
409 if (myBboxSize != src.myBboxSize)
return false;
427 graph->
evalOpParm(myGroup, nodeidx,
"group", time, 0);
428 myUVAttrib =
"uv"_sh;
430 graph->
evalOpParm(myUVAttrib, nodeidx,
"uvattrib", time, 0);
433 graph->
evalOpParm(myMethod, nodeidx,
"method", time, 0);
434 myKeepExistingSeams =
false;
436 graph->
evalOpParm(myKeepExistingSeams, nodeidx,
"keepexistingseams", time, 0);
437 myKeepExistingLayout =
false;
438 if (
true && ( (!(((getKeepExistingSeams()==0)))) ) )
439 graph->
evalOpParm(myKeepExistingLayout, nodeidx,
"keepexistinglayout", time, 0);
440 myPinBoundaries =
false;
441 if (
true && ( (!(((getKeepExistingSeams()==0))||((
int64(getMethod())!=0)))) ) )
442 graph->
evalOpParm(myPinBoundaries, nodeidx,
"pinboundaries", time, 0);
445 graph->
evalOpParm(mySeams, nodeidx,
"seamgroup", time, 0);
448 graph->
evalOpParm(myUsePins, nodeidx,
"usepins", time, 0);
449 if (
true && ( (!(((getUsePins()==0)))) ) )
452 graph->
evalOpParm(length, nodeidx,
"pins", time, 0);
453 myPins.entries(length);
457 auto && _curentry = myPins(i);
459 myPins(i).usepin =
true;
460 if (
true && ( (!(((getUsePins()==0)))) ) )
461 graph->
evalOpParmInst(myPins(i).usepin, nodeidx,
"usepin#", &parmidx, time, 0);
463 if (
true && ( (!(((getUsePins()==0)))) ) )
464 graph->
evalOpParmInst(myPins(i).primvert, nodeidx,
"primvert#", &parmidx, time, 0);
466 if (
true && ( (!(((getUsePins()==0)))) ) )
467 graph->
evalOpParmInst(myPins(i).pinuv, nodeidx,
"pinuv#", &parmidx, time, 0);
469 if (
true && ( (!(((getUsePins()==0)))) ) )
470 graph->
evalOpParmInst(myPins(i).pinrefuv, nodeidx,
"pinrefuv#", &parmidx, time, 0);
476 myUseAlignments =
true;
478 graph->
evalOpParm(myUseAlignments, nodeidx,
"usealignments", time, 0);
479 if (
true && ( (!(((getUseAlignments()==0)))) ) )
482 graph->
evalOpParm(length, nodeidx,
"alignments", time, 0);
483 myAlignments.entries(length);
487 auto && _curentry = myAlignments(i);
489 myAlignments(i).align_enabled =
true;
490 if (
true && ( (!(((getUseAlignments()==0)))) ) )
491 graph->
evalOpParmInst(myAlignments(i).align_enabled, nodeidx,
"align_enabled#", &parmidx, time, 0);
492 myAlignments(i).align_group =
""_sh;
493 if (
true && ( (!(((getUseAlignments()==0)))) ) )
494 graph->
evalOpParmInst(myAlignments(i).align_group, nodeidx,
"align_group#", &parmidx, time, 0);
495 myAlignments(i).align_axis = 0;
496 if (
true && ( (!(((getUseAlignments()==0)))) ) )
497 graph->
evalOpParmInst(myAlignments(i).align_axis, nodeidx,
"align_axis#", &parmidx, time, 0);
502 myAlignments.clear();
503 myUseStraightenings =
true;
505 graph->
evalOpParm(myUseStraightenings, nodeidx,
"usestraightenings", time, 0);
506 if (
true && ( (!(((getUseStraightenings()==0)))) ) )
509 graph->
evalOpParm(length, nodeidx,
"straightenings", time, 0);
510 myStraightenings.entries(length);
514 auto && _curentry = myStraightenings(i);
516 myStraightenings(i).straight_enabled =
true;
517 if (
true && ( (!(((getUseStraightenings()==0)))) ) )
518 graph->
evalOpParmInst(myStraightenings(i).straight_enabled, nodeidx,
"straight_enabled#", &parmidx, time, 0);
519 myStraightenings(i).straight_group =
""_sh;
520 if (
true && ( (!(((getUseStraightenings()==0)))) ) )
521 graph->
evalOpParmInst(myStraightenings(i).straight_group, nodeidx,
"straight_group#", &parmidx, time, 0);
526 myStraightenings.clear();
527 myManualLayout =
true;
529 graph->
evalOpParm(myManualLayout, nodeidx,
"manuallayout", time, 0);
530 myLayoutSeams =
""_sh;
531 if (
true && ( (!(((getManualLayout()==0)))) ) )
532 graph->
evalOpParm(myLayoutSeams, nodeidx,
"layoutseamgroup", time, 0);
533 if (
true && ( (!(((getManualLayout()==0))||((getManualLayout()==0)))) ) )
536 graph->
evalOpParm(length, nodeidx,
"lpins", time, 0);
537 myLpins.entries(length);
541 auto && _curentry = myLpins(i);
544 if (
true && ( (!(((getManualLayout()==0))||((getManualLayout()==0)))) ) && ( (!(((getManualLayout()==0)))) ) )
545 graph->
evalOpParmInst(myLpins(i).lprimvert, nodeidx,
"lprimvert#", &parmidx, time, 0);
547 if (
true && ( (!(((getManualLayout()==0))||((getManualLayout()==0)))) ) && ( (!(((getManualLayout()==0)))) ) )
548 graph->
evalOpParmInst(myLpins(i).lpinuv, nodeidx,
"lpinuv#", &parmidx, time, 0);
550 if (
true && ( (!(((getManualLayout()==0))||((getManualLayout()==0)))) ) && ( (!(((getManualLayout()==0)))) ) )
551 graph->
evalOpParmInst(myLpins(i).lpinrefuv, nodeidx,
"lpinrefuv#", &parmidx, time, 0);
557 if (
true && ( (!(((getManualLayout()==0))||((getManualLayout()==0)))) ) )
560 graph->
evalOpParm(length, nodeidx,
"lalignments", time, 0);
561 myLalignments.entries(length);
565 auto && _curentry = myLalignments(i);
567 myLalignments(i).lalign_group =
""_sh;
568 if (
true && ( (!(((getManualLayout()==0))||((getManualLayout()==0)))) ) && ( (!(((getManualLayout()==0)))) ) )
569 graph->
evalOpParmInst(myLalignments(i).lalign_group, nodeidx,
"lalign_group#", &parmidx, time, 0);
570 myLalignments(i).lalign_axis = 0;
571 if (
true && ( (!(((getManualLayout()==0))||((getManualLayout()==0)))) ) && ( (!(((getManualLayout()==0)))) ) )
572 graph->
evalOpParmInst(myLalignments(i).lalign_axis, nodeidx,
"lalign_axis#", &parmidx, time, 0);
577 myLalignments.clear();
578 if (
true && ( (!(((getManualLayout()==0))||((getManualLayout()==0)))) ) )
581 graph->
evalOpParm(length, nodeidx,
"lstraightenings", time, 0);
582 myLstraightenings.entries(length);
586 auto && _curentry = myLstraightenings(i);
588 myLstraightenings(i).lstraight_group =
""_sh;
589 if (
true && ( (!(((getManualLayout()==0))||((getManualLayout()==0)))) ) && ( (!(((getManualLayout()==0)))) ) )
590 graph->
evalOpParmInst(myLstraightenings(i).lstraight_group, nodeidx,
"lstraight_group#", &parmidx, time, 0);
595 myLstraightenings.clear();
596 myUseOutputSeams =
false;
598 graph->
evalOpParm(myUseOutputSeams, nodeidx,
"useoutputseams", time, 0);
599 myOutputSeams =
"outputseams"_sh;
600 if (
true && ( (!(((getUseOutputSeams()==0)))) ) )
601 graph->
evalOpParm(myOutputSeams, nodeidx,
"outputseams", time, 0);
602 myUseOutputConstrIslands =
false;
604 graph->
evalOpParm(myUseOutputConstrIslands, nodeidx,
"useoutputconstrislands", time, 0);
605 myOutputConstrIslands =
"constrainedprims"_sh;
606 if (
true && ( (!(((getUseOutputConstrIslands()==0)))) ) )
607 graph->
evalOpParm(myOutputConstrIslands, nodeidx,
"outputconstrislands", time, 0);
610 graph->
evalOpParm(myBboxCenter, nodeidx,
"bboxcenter", time, 0);
613 graph->
evalOpParm(myBboxSize, nodeidx,
"bboxsize", time, 0);
629 template <
typename T>
636 if (idx.
size() != instance.
size()+1)
641 coerceValue(value, myGroup);
644 coerceValue(value, myUVAttrib);
647 coerceValue(value, myMethod);
650 coerceValue(value, myKeepExistingSeams);
653 coerceValue(value, myKeepExistingLayout);
656 coerceValue(value, myPinBoundaries);
659 coerceValue(value, mySeams);
662 coerceValue(value, myUsePins);
666 coerceValue(value, myPins.entries());
667 else if (instance[0] < myPins.entries())
669 auto && _data = myPins(instance[0]);
673 coerceValue(value, _data.usepin);
676 coerceValue(value, _data.primvert);
679 coerceValue(value, _data.pinuv);
682 coerceValue(value, _data.pinrefuv);
689 coerceValue(value, myUseAlignments);
693 coerceValue(value, myAlignments.entries());
694 else if (instance[0] < myAlignments.entries())
696 auto && _data = myAlignments(instance[0]);
700 coerceValue(value, _data.align_enabled);
703 coerceValue(value, _data.align_group);
706 coerceValue(value, _data.align_axis);
713 coerceValue(value, myUseStraightenings);
717 coerceValue(value, myStraightenings.entries());
718 else if (instance[0] < myStraightenings.entries())
720 auto && _data = myStraightenings(instance[0]);
724 coerceValue(value, _data.straight_enabled);
727 coerceValue(value, _data.straight_group);
734 coerceValue(value, myManualLayout);
737 coerceValue(value, myLayoutSeams);
741 coerceValue(value, myLpins.entries());
742 else if (instance[0] < myLpins.entries())
744 auto && _data = myLpins(instance[0]);
748 coerceValue(value, _data.lprimvert);
751 coerceValue(value, _data.lpinuv);
754 coerceValue(value, _data.lpinrefuv);
762 coerceValue(value, myLalignments.entries());
763 else if (instance[0] < myLalignments.entries())
765 auto && _data = myLalignments(instance[0]);
769 coerceValue(value, _data.lalign_group);
772 coerceValue(value, _data.lalign_axis);
780 coerceValue(value, myLstraightenings.entries());
781 else if (instance[0] < myLstraightenings.entries())
783 auto && _data = myLstraightenings(instance[0]);
787 coerceValue(value, _data.lstraight_group);
794 coerceValue(value, myUseOutputSeams);
797 coerceValue(value, myOutputSeams);
800 coerceValue(value, myUseOutputConstrIslands);
803 coerceValue(value, myOutputConstrIslands);
806 coerceValue(value, myBboxCenter);
809 coerceValue(value, myBboxSize);
816 { doGetParmValue(idx, instance, value); }
818 { doGetParmValue(idx, instance, value); }
820 { doGetParmValue(idx, instance, value); }
822 { doGetParmValue(idx, instance, value); }
824 { doGetParmValue(idx, instance, value); }
826 { doGetParmValue(idx, instance, value); }
828 { doGetParmValue(idx, instance, value); }
830 { doGetParmValue(idx, instance, value); }
832 { doGetParmValue(idx, instance, value); }
834 { doGetParmValue(idx, instance, value); }
836 { doGetParmValue(idx, instance, value); }
838 template <
typename T>
845 if (idx.
size() != instance.
size()+1)
850 coerceValue(myGroup, value);
853 coerceValue(myUVAttrib, value);
856 coerceValue(myMethod, value);
859 coerceValue(myKeepExistingSeams, value);
862 coerceValue(myKeepExistingLayout, value);
865 coerceValue(myPinBoundaries, value);
868 coerceValue(mySeams, value);
871 coerceValue(myUsePins, value);
877 coerceValue(newsize, value);
878 myPins.setSize(newsize);
882 myPins.setSizeIfNeeded(instance[0]+1);
883 auto && _data = myPins(instance[0]);
887 coerceValue(_data.usepin, value);
890 coerceValue(_data.primvert, value);
893 coerceValue(_data.pinuv, value);
896 coerceValue(_data.pinrefuv, value);
903 coerceValue(myUseAlignments, value);
909 coerceValue(newsize, value);
910 myAlignments.setSize(newsize);
914 myAlignments.setSizeIfNeeded(instance[0]+1);
915 auto && _data = myAlignments(instance[0]);
919 coerceValue(_data.align_enabled, value);
922 coerceValue(_data.align_group, value);
925 coerceValue(_data.align_axis, value);
932 coerceValue(myUseStraightenings, value);
938 coerceValue(newsize, value);
939 myStraightenings.setSize(newsize);
943 myStraightenings.setSizeIfNeeded(instance[0]+1);
944 auto && _data = myStraightenings(instance[0]);
948 coerceValue(_data.straight_enabled, value);
951 coerceValue(_data.straight_group, value);
958 coerceValue(myManualLayout, value);
961 coerceValue(myLayoutSeams, value);
967 coerceValue(newsize, value);
968 myLpins.setSize(newsize);
972 myLpins.setSizeIfNeeded(instance[0]+1);
973 auto && _data = myLpins(instance[0]);
977 coerceValue(_data.lprimvert, value);
980 coerceValue(_data.lpinuv, value);
983 coerceValue(_data.lpinrefuv, value);
993 coerceValue(newsize, value);
994 myLalignments.setSize(newsize);
998 myLalignments.setSizeIfNeeded(instance[0]+1);
999 auto && _data = myLalignments(instance[0]);
1003 coerceValue(_data.lalign_group, value);
1006 coerceValue(_data.lalign_axis, value);
1013 if (idx.
size() == 1)
1016 coerceValue(newsize, value);
1017 myLstraightenings.setSize(newsize);
1021 myLstraightenings.setSizeIfNeeded(instance[0]+1);
1022 auto && _data = myLstraightenings(instance[0]);
1026 coerceValue(_data.lstraight_group, value);
1033 coerceValue(myUseOutputSeams, value);
1036 coerceValue(myOutputSeams, value);
1039 coerceValue(myUseOutputConstrIslands, value);
1042 coerceValue(myOutputConstrIslands, value);
1045 coerceValue(myBboxCenter, value);
1048 coerceValue(myBboxSize, value);
1055 { doSetParmValue(idx, instance, value); }
1057 { doSetParmValue(idx, instance, value); }
1059 { doSetParmValue(idx, instance, value); }
1061 { doSetParmValue(idx, instance, value); }
1063 { doSetParmValue(idx, instance, value); }
1065 { doSetParmValue(idx, instance, value); }
1067 { doSetParmValue(idx, instance, value); }
1069 { doSetParmValue(idx, instance, value); }
1071 { doSetParmValue(idx, instance, value); }
1073 { doSetParmValue(idx, instance, value); }
1075 { doSetParmValue(idx, instance, value); }
1079 if (idx.
size() == 0)
1103 if (fieldnum.
size() < 1)
1105 switch (fieldnum[0])
1114 return "keepexistingseams";
1116 return "keepexistinglayout";
1118 return "pinboundaries";
1124 if (fieldnum.
size() == 1)
1126 switch (fieldnum[1])
1140 return "usealignments";
1142 if (fieldnum.
size() == 1)
1143 return "alignments";
1144 switch (fieldnum[1])
1147 return "align_enabled#";
1149 return "align_group#";
1151 return "align_axis#";
1156 return "usestraightenings";
1158 if (fieldnum.
size() == 1)
1159 return "straightenings";
1160 switch (fieldnum[1])
1163 return "straight_enabled#";
1165 return "straight_group#";
1170 return "manuallayout";
1172 return "layoutseamgroup";
1174 if (fieldnum.
size() == 1)
1176 switch (fieldnum[1])
1179 return "lprimvert#";
1183 return "lpinrefuv#";
1188 if (fieldnum.
size() == 1)
1189 return "lalignments";
1190 switch (fieldnum[1])
1193 return "lalign_group#";
1195 return "lalign_axis#";
1200 if (fieldnum.
size() == 1)
1201 return "lstraightenings";
1202 switch (fieldnum[1])
1205 return "lstraight_group#";
1210 return "useoutputseams";
1212 return "outputseams";
1214 return "useoutputconstrislands";
1216 return "outputconstrislands";
1218 return "bboxcenter";
1228 if (fieldnum.
size() < 1)
1229 return PARM_UNSUPPORTED;
1230 switch (fieldnum[0])
1237 return PARM_INTEGER;
1239 return PARM_INTEGER;
1241 return PARM_INTEGER;
1243 return PARM_INTEGER;
1247 return PARM_INTEGER;
1249 if (fieldnum.
size() == 1)
1250 return PARM_MULTIPARM;
1251 switch (fieldnum[1])
1254 return PARM_INTEGER;
1256 return PARM_VECTOR2;
1258 return PARM_VECTOR2;
1260 return PARM_VECTOR2;
1263 return PARM_UNSUPPORTED;
1265 return PARM_INTEGER;
1267 if (fieldnum.
size() == 1)
1268 return PARM_MULTIPARM;
1269 switch (fieldnum[1])
1272 return PARM_INTEGER;
1276 return PARM_INTEGER;
1279 return PARM_UNSUPPORTED;
1281 return PARM_INTEGER;
1283 if (fieldnum.
size() == 1)
1284 return PARM_MULTIPARM;
1285 switch (fieldnum[1])
1288 return PARM_INTEGER;
1293 return PARM_UNSUPPORTED;
1295 return PARM_INTEGER;
1299 if (fieldnum.
size() == 1)
1300 return PARM_MULTIPARM;
1301 switch (fieldnum[1])
1304 return PARM_VECTOR2;
1306 return PARM_VECTOR2;
1308 return PARM_VECTOR2;
1311 return PARM_UNSUPPORTED;
1313 if (fieldnum.
size() == 1)
1314 return PARM_MULTIPARM;
1315 switch (fieldnum[1])
1320 return PARM_INTEGER;
1323 return PARM_UNSUPPORTED;
1325 if (fieldnum.
size() == 1)
1326 return PARM_MULTIPARM;
1327 switch (fieldnum[1])
1333 return PARM_UNSUPPORTED;
1335 return PARM_INTEGER;
1339 return PARM_INTEGER;
1343 return PARM_VECTOR2;
1345 return PARM_VECTOR2;
1348 return PARM_UNSUPPORTED;
1353 { is.
bread(&v, 1); }
1384 loadData(is, rampdata);
1402 int typelen = colon - data.
buffer();
1414 { UTwrite(os, &v); }
1416 {
int64 iv =
v; UTwrite(os, &iv); }
1418 { UTwrite<fpreal64>(os, &
v); }
1420 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
1422 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1423 UTwrite<fpreal64>(os, &v.
z()); }
1425 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1426 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
1438 if (s) s->save(ostr);
1439 result = ostr.
str();
1440 saveData(os, result);
1447 ostr << s->getDataTypeToken();
1449 s->saveBinary(ostr);
1451 result = ostr.
str();
1452 saveData(os, result);
1460 saveData(os, myGroup);
1461 saveData(os, myUVAttrib);
1462 saveData(os, myMethod);
1463 saveData(os, myKeepExistingSeams);
1464 saveData(os, myKeepExistingLayout);
1465 saveData(os, myPinBoundaries);
1466 saveData(os, mySeams);
1467 saveData(os, myUsePins);
1470 UTwrite(os, &length);
1473 saveData(os, myPins(i).usepin);
1474 saveData(os, myPins(i).primvert);
1475 saveData(os, myPins(i).pinuv);
1476 saveData(os, myPins(i).pinrefuv);
1480 saveData(os, myUseAlignments);
1483 UTwrite(os, &length);
1486 saveData(os, myAlignments(i).align_enabled);
1487 saveData(os, myAlignments(i).align_group);
1488 saveData(os, myAlignments(i).align_axis);
1492 saveData(os, myUseStraightenings);
1495 UTwrite(os, &length);
1498 saveData(os, myStraightenings(i).straight_enabled);
1499 saveData(os, myStraightenings(i).straight_group);
1503 saveData(os, myManualLayout);
1504 saveData(os, myLayoutSeams);
1507 UTwrite(os, &length);
1510 saveData(os, myLpins(i).lprimvert);
1511 saveData(os, myLpins(i).lpinuv);
1512 saveData(os, myLpins(i).lpinrefuv);
1518 UTwrite(os, &length);
1521 saveData(os, myLalignments(i).lalign_group);
1522 saveData(os, myLalignments(i).lalign_axis);
1528 UTwrite(os, &length);
1531 saveData(os, myLstraightenings(i).lstraight_group);
1535 saveData(os, myUseOutputSeams);
1536 saveData(os, myOutputSeams);
1537 saveData(os, myUseOutputConstrIslands);
1538 saveData(os, myOutputConstrIslands);
1539 saveData(os, myBboxCenter);
1540 saveData(os, myBboxSize);
1553 loadData(is, myGroup);
1554 loadData(is, myUVAttrib);
1555 loadData(is, myMethod);
1556 loadData(is, myKeepExistingSeams);
1557 loadData(is, myKeepExistingLayout);
1558 loadData(is, myPinBoundaries);
1559 loadData(is, mySeams);
1560 loadData(is, myUsePins);
1563 is.
read(&length, 1);
1564 myPins.entries(length);
1567 loadData(is, myPins(i).usepin);
1568 loadData(is, myPins(i).primvert);
1569 loadData(is, myPins(i).pinuv);
1570 loadData(is, myPins(i).pinrefuv);
1574 loadData(is, myUseAlignments);
1577 is.
read(&length, 1);
1578 myAlignments.entries(length);
1581 loadData(is, myAlignments(i).align_enabled);
1582 loadData(is, myAlignments(i).align_group);
1583 loadData(is, myAlignments(i).align_axis);
1587 loadData(is, myUseStraightenings);
1590 is.
read(&length, 1);
1591 myStraightenings.entries(length);
1594 loadData(is, myStraightenings(i).straight_enabled);
1595 loadData(is, myStraightenings(i).straight_group);
1599 loadData(is, myManualLayout);
1600 loadData(is, myLayoutSeams);
1603 is.
read(&length, 1);
1604 myLpins.entries(length);
1607 loadData(is, myLpins(i).lprimvert);
1608 loadData(is, myLpins(i).lpinuv);
1609 loadData(is, myLpins(i).lpinrefuv);
1615 is.
read(&length, 1);
1616 myLalignments.entries(length);
1619 loadData(is, myLalignments(i).lalign_group);
1620 loadData(is, myLalignments(i).lalign_axis);
1626 is.
read(&length, 1);
1627 myLstraightenings.entries(length);
1630 loadData(is, myLstraightenings(i).lstraight_group);
1634 loadData(is, myUseOutputSeams);
1635 loadData(is, myOutputSeams);
1636 loadData(is, myUseOutputConstrIslands);
1637 loadData(is, myOutputConstrIslands);
1638 loadData(is, myBboxCenter);
1639 loadData(is, myBboxSize);
1649 if (!thissop)
return getGroup();
1651 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
1659 if (!thissop)
return getUVAttrib();
1661 OP_Utils::evalOpParm(result, thissop,
"uvattrib", cookparms.
getCookTime(), 0);
1669 if (!thissop)
return getMethod();
1671 OP_Utils::evalOpParm(result, thissop,
"method", cookparms.
getCookTime(), 0);
1679 if (!thissop)
return getKeepExistingSeams();
1681 OP_Utils::evalOpParm(result, thissop,
"keepexistingseams", cookparms.
getCookTime(), 0);
1689 if (!thissop)
return getKeepExistingLayout();
1691 OP_Utils::evalOpParm(result, thissop,
"keepexistinglayout", cookparms.
getCookTime(), 0);
1699 if (!thissop)
return getPinBoundaries();
1701 OP_Utils::evalOpParm(result, thissop,
"pinboundaries", cookparms.
getCookTime(), 0);
1709 if (!thissop)
return getSeams();
1711 OP_Utils::evalOpParm(result, thissop,
"seamgroup", cookparms.
getCookTime(), 0);
1719 if (!thissop)
return getUsePins();
1721 OP_Utils::evalOpParm(result, thissop,
"usepins", cookparms.
getCookTime(), 0);
1729 if (!thissop)
return getPins().entries();
1731 OP_Utils::evalOpParm(result, thissop,
"pins", cookparms.
getCookTime(), 0);
1737 if (!thissop)
return (myPins(_idx).usepin);
1738 int _parmidx = _idx + 0;
1740 OP_Utils::evalOpParmInst(result, thissop,
"usepin#", &_parmidx, cookparms.
getCookTime(), 0);
1746 if (!thissop)
return (myPins(_idx).primvert);
1747 int _parmidx = _idx + 0;
1749 OP_Utils::evalOpParmInst(result, thissop,
"primvert#", &_parmidx, cookparms.
getCookTime(), 0);
1755 if (!thissop)
return (myPins(_idx).pinuv);
1756 int _parmidx = _idx + 0;
1758 OP_Utils::evalOpParmInst(result, thissop,
"pinuv#", &_parmidx, cookparms.
getCookTime(), 0);
1764 if (!thissop)
return (myPins(_idx).pinrefuv);
1765 int _parmidx = _idx + 0;
1767 OP_Utils::evalOpParmInst(result, thissop,
"pinrefuv#", &_parmidx, cookparms.
getCookTime(), 0);
1776 if (!thissop)
return getUseAlignments();
1778 OP_Utils::evalOpParm(result, thissop,
"usealignments", cookparms.
getCookTime(), 0);
1786 if (!thissop)
return getAlignments().entries();
1788 OP_Utils::evalOpParm(result, thissop,
"alignments", cookparms.
getCookTime(), 0);
1794 if (!thissop)
return (myAlignments(_idx).align_enabled);
1795 int _parmidx = _idx + 0;
1797 OP_Utils::evalOpParmInst(result, thissop,
"align_enabled#", &_parmidx, cookparms.
getCookTime(), 0);
1803 if (!thissop)
return (myAlignments(_idx).align_group);
1804 int _parmidx = _idx + 0;
1806 OP_Utils::evalOpParmInst(result, thissop,
"align_group#", &_parmidx, cookparms.
getCookTime(), 0);
1812 if (!thissop)
return (myAlignments(_idx).align_axis);
1813 int _parmidx = _idx + 0;
1815 OP_Utils::evalOpParmInst(result, thissop,
"align_axis#", &_parmidx, cookparms.
getCookTime(), 0);
1824 if (!thissop)
return getUseStraightenings();
1826 OP_Utils::evalOpParm(result, thissop,
"usestraightenings", cookparms.
getCookTime(), 0);
1834 if (!thissop)
return getStraightenings().entries();
1836 OP_Utils::evalOpParm(result, thissop,
"straightenings", cookparms.
getCookTime(), 0);
1842 if (!thissop)
return (myStraightenings(_idx).straight_enabled);
1843 int _parmidx = _idx + 0;
1845 OP_Utils::evalOpParmInst(result, thissop,
"straight_enabled#", &_parmidx, cookparms.
getCookTime(), 0);
1851 if (!thissop)
return (myStraightenings(_idx).straight_group);
1852 int _parmidx = _idx + 0;
1854 OP_Utils::evalOpParmInst(result, thissop,
"straight_group#", &_parmidx, cookparms.
getCookTime(), 0);
1863 if (!thissop)
return getManualLayout();
1865 OP_Utils::evalOpParm(result, thissop,
"manuallayout", cookparms.
getCookTime(), 0);
1873 if (!thissop)
return getLayoutSeams();
1875 OP_Utils::evalOpParm(result, thissop,
"layoutseamgroup", cookparms.
getCookTime(), 0);
1883 if (!thissop)
return getLpins().entries();
1885 OP_Utils::evalOpParm(result, thissop,
"lpins", cookparms.
getCookTime(), 0);
1891 if (!thissop)
return (myLpins(_idx).lprimvert);
1892 int _parmidx = _idx + 0;
1894 OP_Utils::evalOpParmInst(result, thissop,
"lprimvert#", &_parmidx, cookparms.
getCookTime(), 0);
1900 if (!thissop)
return (myLpins(_idx).lpinuv);
1901 int _parmidx = _idx + 0;
1903 OP_Utils::evalOpParmInst(result, thissop,
"lpinuv#", &_parmidx, cookparms.
getCookTime(), 0);
1909 if (!thissop)
return (myLpins(_idx).lpinrefuv);
1910 int _parmidx = _idx + 0;
1912 OP_Utils::evalOpParmInst(result, thissop,
"lpinrefuv#", &_parmidx, cookparms.
getCookTime(), 0);
1921 if (!thissop)
return getLalignments().entries();
1923 OP_Utils::evalOpParm(result, thissop,
"lalignments", cookparms.
getCookTime(), 0);
1929 if (!thissop)
return (myLalignments(_idx).lalign_group);
1930 int _parmidx = _idx + 0;
1932 OP_Utils::evalOpParmInst(result, thissop,
"lalign_group#", &_parmidx, cookparms.
getCookTime(), 0);
1938 if (!thissop)
return (myLalignments(_idx).lalign_axis);
1939 int _parmidx = _idx + 0;
1941 OP_Utils::evalOpParmInst(result, thissop,
"lalign_axis#", &_parmidx, cookparms.
getCookTime(), 0);
1950 if (!thissop)
return getLstraightenings().entries();
1952 OP_Utils::evalOpParm(result, thissop,
"lstraightenings", cookparms.
getCookTime(), 0);
1958 if (!thissop)
return (myLstraightenings(_idx).lstraight_group);
1959 int _parmidx = _idx + 0;
1961 OP_Utils::evalOpParmInst(result, thissop,
"lstraight_group#", &_parmidx, cookparms.
getCookTime(), 0);
1970 if (!thissop)
return getUseOutputSeams();
1972 OP_Utils::evalOpParm(result, thissop,
"useoutputseams", cookparms.
getCookTime(), 0);
1980 if (!thissop)
return getOutputSeams();
1982 OP_Utils::evalOpParm(result, thissop,
"outputseams", cookparms.
getCookTime(), 0);
1990 if (!thissop)
return getUseOutputConstrIslands();
1992 OP_Utils::evalOpParm(result, thissop,
"useoutputconstrislands", cookparms.
getCookTime(), 0);
2000 if (!thissop)
return getOutputConstrIslands();
2002 OP_Utils::evalOpParm(result, thissop,
"outputconstrislands", cookparms.
getCookTime(), 0);
2010 if (!thissop)
return getBboxCenter();
2012 OP_Utils::evalOpParm(result, thissop,
"bboxcenter", cookparms.
getCookTime(), 0);
2020 if (!thissop)
return getBboxSize();
2022 OP_Utils::evalOpParm(result, thissop,
"bboxsize", cookparms.
getCookTime(), 0);
2030 bool myKeepExistingSeams;
2031 bool myKeepExistingLayout;
2032 bool myPinBoundaries;
2036 bool myUseAlignments;
2038 bool myUseStraightenings;
2040 bool myManualLayout;
2045 bool myUseOutputSeams;
2047 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)
UT_Vector2D opLpins_lpinuv(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
bool operator==(const SOP_UVFlatten_2_0Parms &src) 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)
UT_Vector2D opBboxSize(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder createString(const UT_Array< Pins > &list) const
virtual void evalOpParmInst(int64 &v, NodeIdx node, const char *parmname, int *inst, fpreal time, DEP_MicroNode *depnode) const =0
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
bool opPins_usepin(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
UT_StringHolder opOutputSeams(const SOP_NodeVerb::CookParms &cookparms) const
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
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
int64 opAlignments_align_axis(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
GLuint const GLfloat * val
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
bool operator==(const Lpins &src) const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
void loadFromOpSubclass(const LoadParms &loadparms) override
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
UT_StringHolder opStraightenings_straight_group(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
UT_StringHolder opAlignments_align_group(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
bool load(UT_IStream &is)
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
void setBboxSize(UT_Vector2D val)
const SOP_GraphProxy * graph() const
bool operator==(const Pins &src) const
UT_Vector2D opPins_pinrefuv(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
bool opKeepExistingSeams(const SOP_NodeVerb::CookParms &cookparms) const
bool opPinBoundaries(const SOP_NodeVerb::CookParms &cookparms) const
~SOP_UVFlatten_2_0Parms() override
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
const UT_StringHolder & getGroup() 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.
UT_Vector2D opBboxCenter(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
const UT_Array< Lalignments > & getLalignments() 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)
exint opLstraightenings(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Matrix3D &v)
bool opAlignments_align_enabled(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
exint opAlignments(const SOP_NodeVerb::CookParms &cookparms) 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 setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
static void loadData(UT_IStream &is, UT_Vector4I &v)
void buildFromOp(const SOP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
static void loadData(UT_IStream &is, UT_Vector3D &v)
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 setBboxCenter(UT_Vector2D val)
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.
GLint GLenum GLsizei GLint GLsizei const void * data
bool operator!=(const Pins &src) const
const UT_Array< Alignments > & getAlignments() const
exint read(bool *array, exint sz=1)
void setManualLayout(bool val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
const UT_StringHolder & getUVAttrib() const
UT_Vector2D opPins_pinuv(const SOP_NodeVerb::CookParms &cookparms, exint _idx) 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
GLuint GLsizei GLsizei * length
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)
bool opUseAlignments(const SOP_NodeVerb::CookParms &cookparms) const
bool getPinBoundaries() const
bool opKeepExistingLayout(const SOP_NodeVerb::CookParms &cookparms) const
bool opUseStraightenings(const SOP_NodeVerb::CookParms &cookparms) const
void setUsePins(bool val)
const UT_StringHolder & getOutputConstrIslands() const
bool operator!=(const Alignments &src) const
UT_StringHolder straight_group
ParmType getNestParmType(TempIndex fieldnum) const override
UT_Vector2D opLpins_lprimvert(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
void copyFrom(const SOP_NodeParms *src) override
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
static void saveData(std::ostream &os, fpreal64 v)
DEP_MicroNode * depnode() const
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_Vector2D opLpins_lpinrefuv(const SOP_NodeVerb::CookParms &cookparms, exint _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)
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
UT_StringHolder opLalignments_lalign_group(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
bool getUseOutputConstrIslands() const
Utility class for containing a color ramp.
const UT_Array< Straightenings > & getStraightenings() const
void setUVAttrib(const UT_StringHolder &val)
SYS_FORCE_INLINE void append(char character)
static void loadData(UT_IStream &is, UT_Vector2D &v)
void setLayoutSeams(const UT_StringHolder &val)
GLdouble GLdouble GLdouble r
UT_Vector2D getBboxSize() const
UT_StringHolder opUVAttrib(const SOP_NodeVerb::CookParms &cookparms) const
bool opUseOutputSeams(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getOutputSeams() const
exint opStraightenings(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector2D opPins_primvert(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
bool operator==(const Lalignments &src) const
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
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
bool opStraightenings_straight_enabled(const SOP_NodeVerb::CookParms &cookparms, exint _idx) 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
void setSeams(const UT_StringHolder &val)
void setMethod(Method val)
UT_StringHolder opLstraightenings_lstraight_group(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
GLenum GLuint GLsizei const GLchar * buf
int64 opLalignments_lalign_axis(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
GLsizei const GLfloat * value
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
const OP_Context & context() const
bool operator==(const Straightenings &src) const
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
static void loadData(UT_IStream &is, UT_Vector2I &v)
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
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
UT_Vector2D getBboxCenter() const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
bool getKeepExistingLayout() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override