23 namespace SOP_AttribCombineEnums
37 using namespace UT::Literal;
59 using namespace UT::Literal;
83 using namespace UT::Literal;
107 using namespace UT::Literal;
108 switch (enum_value) {
126 using namespace UT::Literal;
127 switch (enum_value) {
146 using namespace UT::Literal;
147 switch (enum_value) {
166 using namespace UT::Literal;
167 switch (enum_value) {
183 using namespace UT::Literal;
184 switch (enum_value) {
226 blendattrib =
""_UTsh;
233 if (enable != src.
enable)
return false;
234 if (combine != src.
combine)
return false;
235 if (adjust != src.
adjust)
return false;
236 if (srcattrib != src.
srcattrib)
return false;
237 if (srcinput != src.
srcinput)
return false;
239 if (
add != src.
add)
return false;
240 if (process != src.
process)
return false;
244 if (blendinput != src.
blendinput)
return false;
260 for (
int i = 0; i < list.
entries(); i++)
266 buf.
appendSprintf(
"%s", (list(i).enable) ?
"true" :
"false");
302 myDstAttrib =
""_UTsh;
304 myCombinations.setSize(1);
306 myDoThreshold =
false;
308 myDoClampMin =
false;
310 myDoClampMax =
false;
312 myAttribMatch =
"id"_UTsh;
313 myCreateMissing =
true;
314 myForceScalar =
false;
315 myDeleteSource =
false;
316 myErrorMissing =
true;
329 if (myGroup != src.myGroup)
return false;
330 if (myGroupType != src.myGroupType)
return false;
331 if (myDstAttrib != src.myDstAttrib)
return false;
332 if (myClass != src.myClass)
return false;
333 if (myCombinations != src.myCombinations)
return false;
334 if (myPostScale != src.myPostScale)
return false;
335 if (myDoThreshold != src.myDoThreshold)
return false;
336 if (myThreshold != src.myThreshold)
return false;
337 if (myDoClampMin != src.myDoClampMin)
return false;
338 if (myClampMin != src.myClampMin)
return false;
339 if (myDoClampMax != src.myDoClampMax)
return false;
340 if (myClampMax != src.myClampMax)
return false;
341 if (myAttribMatch != src.myAttribMatch)
return false;
342 if (myCreateMissing != src.myCreateMissing)
return false;
343 if (myForceScalar != src.myForceScalar)
return false;
344 if (myDeleteSource != src.myDeleteSource)
return false;
345 if (myErrorMissing != src.myErrorMissing)
return false;
368 graph->
evalOpParm(myGroup, nodeidx,
"group", time, 0);
371 graph->
evalOpParm(myGroupType, nodeidx,
"grouptype", time, 0);
372 myDstAttrib =
""_UTsh;
374 graph->
evalOpParm(myDstAttrib, nodeidx,
"dstattrib", time, 0);
377 graph->
evalOpParm(myClass, nodeidx,
"class", time, 0);
381 graph->
evalOpParm(length, nodeidx,
"numcombines", time, 0);
382 if (length < 0) length = 0;
383 myCombinations.setSize(length);
390 auto && _curentry = myCombinations(i);
392 _curentry.enable =
true;
394 graph->
evalOpParmInst(_curentry.enable, nodeidx,
"enable#", parmidx, offsets, time, 0, 2-1);
395 _curentry.combine = 1;
396 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
397 graph->
evalOpParmInst(_curentry.combine, nodeidx,
"combine#", parmidx, offsets, time, 0, 2-1);
398 _curentry.adjust = 0;
399 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
400 graph->
evalOpParmInst(_curentry.adjust, nodeidx,
"adjust#", parmidx, offsets, time, 0, 2-1);
401 _curentry.srcattrib =
""_UTsh;
402 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
403 graph->
evalOpParmInst(_curentry.srcattrib, nodeidx,
"srcattrib#", parmidx, offsets, time, 0, 2-1);
404 _curentry.srcinput = 0;
405 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
406 graph->
evalOpParmInst(_curentry.srcinput, nodeidx,
"srcinput#", parmidx, offsets, time, 0, 2-1);
408 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.adjust==0)))) ) )
409 graph->
evalOpParmInst(_curentry.scale, nodeidx,
"scale#", parmidx, offsets, time, 0, 2-1);
411 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.adjust==0))||((_curentry.adjust==1)))) ) )
412 graph->
evalOpParmInst(_curentry.add, nodeidx,
"add#", parmidx, offsets, time, 0, 2-1);
413 _curentry.process = 0;
414 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.adjust==0))||((_curentry.adjust==1))||((_curentry.adjust==2)))) ) )
415 graph->
evalOpParmInst(_curentry.process, nodeidx,
"process#", parmidx, offsets, time, 0, 2-1);
417 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
418 graph->
evalOpParmInst(_curentry.blend, nodeidx,
"blend#", parmidx, offsets, time, 0, 2-1);
419 _curentry.doblendattrib = 0;
420 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
421 graph->
evalOpParmInst(_curentry.doblendattrib, nodeidx,
"doblendattrib#", parmidx, offsets, time, 0, 2-1);
422 _curentry.blendattrib =
""_UTsh;
423 if (
true && ( (
true&&!(((_curentry.doblendattrib==0))||((_curentry.enable==0)))) ) )
424 graph->
evalOpParmInst(_curentry.blendattrib, nodeidx,
"blendattrib#", parmidx, offsets, time, 0, 2-1);
425 _curentry.blendinput = 0;
426 if (
true && ( (
true&&!(((_curentry.doblendattrib==0))||((_curentry.enable==0)))) ) )
427 graph->
evalOpParmInst(_curentry.blendinput, nodeidx,
"blendinput#", parmidx, offsets, time, 0, 2-1);
432 myCombinations.clear();
435 graph->
evalOpParm(myPostScale, nodeidx,
"postscale", time, 0);
436 myDoThreshold =
false;
438 graph->
evalOpParm(myDoThreshold, nodeidx,
"dothreshold", time, 0);
440 if (
true && ( (
true&&!(((getDoThreshold()==0)))) ) )
441 graph->
evalOpParm(myThreshold, nodeidx,
"threshold", time, 0);
442 myDoClampMin =
false;
444 graph->
evalOpParm(myDoClampMin, nodeidx,
"doclampmin", time, 0);
446 if (
true && ( (
true&&!(((getDoClampMin()==0)&&(getDoThreshold()==0)))) ) )
447 graph->
evalOpParm(myClampMin, nodeidx,
"clampmin", time, 0);
448 myDoClampMax =
false;
450 graph->
evalOpParm(myDoClampMax, nodeidx,
"doclampmax", time, 0);
452 if (
true && ( (
true&&!(((getDoClampMax()==0)&&(getDoThreshold()==0)))) ) )
453 graph->
evalOpParm(myClampMax, nodeidx,
"clampmax", time, 0);
454 myAttribMatch =
"id"_UTsh;
456 graph->
evalOpParm(myAttribMatch, nodeidx,
"attribmatch", time, 0);
457 myCreateMissing =
true;
459 graph->
evalOpParm(myCreateMissing, nodeidx,
"createmissing", time, 0);
460 myForceScalar =
false;
461 if (
true && ( (
true&&!(((getCreateMissing()==0)))) ) )
462 graph->
evalOpParm(myForceScalar, nodeidx,
"forcescalar", time, 0);
463 myDeleteSource =
false;
465 graph->
evalOpParm(myDeleteSource, nodeidx,
"deletesource", time, 0);
466 myErrorMissing =
true;
468 graph->
evalOpParm(myErrorMissing, nodeidx,
"errormissing", time, 0);
484 template <
typename T>
491 if (idx.
size() != instance.
size()+1)
496 coerceValue(value, myGroup);
499 coerceValue(value, myGroupType);
502 coerceValue(value, myDstAttrib);
505 coerceValue(value, myClass);
509 coerceValue(value, myCombinations.entries());
510 else if (instance[0] < myCombinations.entries())
512 auto && _data = myCombinations(instance[0]);
516 coerceValue(value, _data.enable);
519 coerceValue(value, _data.combine);
522 coerceValue(value, _data.adjust);
525 coerceValue(value, _data.srcattrib);
528 coerceValue(value, _data.srcinput);
531 coerceValue(value, _data.scale);
534 coerceValue(value, _data.add);
537 coerceValue(value, _data.process);
540 coerceValue(value, _data.blend);
543 coerceValue(value, _data.doblendattrib);
546 coerceValue(value, _data.blendattrib);
549 coerceValue(value, _data.blendinput);
556 coerceValue(value, myPostScale);
559 coerceValue(value, myDoThreshold);
562 coerceValue(value, myThreshold);
565 coerceValue(value, myDoClampMin);
568 coerceValue(value, myClampMin);
571 coerceValue(value, myDoClampMax);
574 coerceValue(value, myClampMax);
577 coerceValue(value, myAttribMatch);
580 coerceValue(value, myCreateMissing);
583 coerceValue(value, myForceScalar);
586 coerceValue(value, myDeleteSource);
589 coerceValue(value, myErrorMissing);
605 { doGetParmValue(idx, instance, value); }
607 { doGetParmValue(idx, instance, value); }
609 { doGetParmValue(idx, instance, value); }
611 { doGetParmValue(idx, instance, value); }
613 { doGetParmValue(idx, instance, value); }
615 { doGetParmValue(idx, instance, value); }
617 { doGetParmValue(idx, instance, value); }
619 { doGetParmValue(idx, instance, value); }
621 { doGetParmValue(idx, instance, value); }
623 { doGetParmValue(idx, instance, value); }
625 { doGetParmValue(idx, instance, value); }
627 template <
typename T>
634 if (idx.
size() != instance.
size()+1)
639 coerceValue(myGroup, ( ( value ) ));
642 coerceValue(myGroupType, clampMinValue(0, clampMaxValue(4, value ) ));
645 coerceValue(myDstAttrib, ( ( value ) ));
648 coerceValue(myClass, clampMinValue(0, clampMaxValue(3, value ) ));
654 coerceValue(newsize, value);
655 if (newsize < 0) newsize = 0;
656 myCombinations.setSize(newsize);
662 myCombinations.setSizeIfNeeded(instance[0]+1);
663 auto && _data = myCombinations(instance[0]);
667 coerceValue(_data.enable, value);
670 coerceValue(_data.combine, value);
673 coerceValue(_data.adjust, value);
676 coerceValue(_data.srcattrib, value);
679 coerceValue(_data.srcinput, value);
682 coerceValue(_data.scale, value);
685 coerceValue(_data.add, value);
688 coerceValue(_data.process, value);
691 coerceValue(_data.blend, value);
694 coerceValue(_data.doblendattrib, value);
697 coerceValue(_data.blendattrib, value);
700 coerceValue(_data.blendinput, value);
707 coerceValue(myPostScale, ( ( value ) ));
710 coerceValue(myDoThreshold, ( ( value ) ));
713 coerceValue(myThreshold, ( ( value ) ));
716 coerceValue(myDoClampMin, ( ( value ) ));
719 coerceValue(myClampMin, ( ( value ) ));
722 coerceValue(myDoClampMax, ( ( value ) ));
725 coerceValue(myClampMax, ( ( value ) ));
728 coerceValue(myAttribMatch, ( ( value ) ));
731 coerceValue(myCreateMissing, ( ( value ) ));
734 coerceValue(myForceScalar, ( ( value ) ));
737 coerceValue(myDeleteSource, ( ( value ) ));
740 coerceValue(myErrorMissing, ( ( value ) ));
747 { doSetParmValue(idx, instance, value); }
749 { doSetParmValue(idx, instance, value); }
751 { doSetParmValue(idx, instance, value); }
753 { doSetParmValue(idx, instance, value); }
755 { doSetParmValue(idx, instance, value); }
757 { doSetParmValue(idx, instance, value); }
759 { doSetParmValue(idx, instance, value); }
761 { doSetParmValue(idx, instance, value); }
763 { doSetParmValue(idx, instance, value); }
765 { doSetParmValue(idx, instance, value); }
767 { doSetParmValue(idx, instance, value); }
785 if (fieldnum.
size() < 1)
798 if (fieldnum.
size() == 1)
799 return "numcombines";
821 return "doblendattrib#";
823 return "blendattrib#";
825 return "blendinput#";
832 return "dothreshold";
844 return "attribmatch";
846 return "createmissing";
848 return "forcescalar";
850 return "deletesource";
852 return "errormissing";
860 if (fieldnum.
size() < 1)
861 return PARM_UNSUPPORTED;
873 if (fieldnum.
size() == 1)
874 return PARM_MULTIPARM;
903 return PARM_UNSUPPORTED;
930 return PARM_UNSUPPORTED;
966 loadData(is, rampdata);
984 int typelen = colon - data.
buffer();
998 {
int64 iv =
v; UTwrite(os, &iv); }
1000 { UTwrite<fpreal64>(os, &
v); }
1002 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
1004 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1005 UTwrite<fpreal64>(os, &v.
z()); }
1007 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1008 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
1020 if (s) s->save(ostr);
1021 result = ostr.
str();
1022 saveData(os, result);
1029 ostr << s->getDataTypeToken();
1031 s->saveBinary(ostr);
1033 result = ostr.
str();
1034 saveData(os, result);
1042 saveData(os, myGroup);
1043 saveData(os, myGroupType);
1044 saveData(os, myDstAttrib);
1045 saveData(os, myClass);
1048 UTwrite(os, &length);
1051 auto && _curentry = myCombinations(i);
1053 saveData(os, _curentry.enable);
1054 saveData(os, _curentry.combine);
1055 saveData(os, _curentry.adjust);
1056 saveData(os, _curentry.srcattrib);
1057 saveData(os, _curentry.srcinput);
1058 saveData(os, _curentry.scale);
1059 saveData(os, _curentry.add);
1060 saveData(os, _curentry.process);
1061 saveData(os, _curentry.blend);
1062 saveData(os, _curentry.doblendattrib);
1063 saveData(os, _curentry.blendattrib);
1064 saveData(os, _curentry.blendinput);
1068 saveData(os, myPostScale);
1069 saveData(os, myDoThreshold);
1070 saveData(os, myThreshold);
1071 saveData(os, myDoClampMin);
1072 saveData(os, myClampMin);
1073 saveData(os, myDoClampMax);
1074 saveData(os, myClampMax);
1075 saveData(os, myAttribMatch);
1076 saveData(os, myCreateMissing);
1077 saveData(os, myForceScalar);
1078 saveData(os, myDeleteSource);
1079 saveData(os, myErrorMissing);
1092 loadData(is, myGroup);
1093 loadData(is, myGroupType);
1094 loadData(is, myDstAttrib);
1095 loadData(is, myClass);
1098 is.
read(&length, 1);
1099 myCombinations.setSize(length);
1102 auto && _curentry = myCombinations(i);
1104 loadData(is, _curentry.enable);
1105 loadData(is, _curentry.combine);
1106 loadData(is, _curentry.adjust);
1107 loadData(is, _curentry.srcattrib);
1108 loadData(is, _curentry.srcinput);
1109 loadData(is, _curentry.scale);
1110 loadData(is, _curentry.add);
1111 loadData(is, _curentry.process);
1112 loadData(is, _curentry.blend);
1113 loadData(is, _curentry.doblendattrib);
1114 loadData(is, _curentry.blendattrib);
1115 loadData(is, _curentry.blendinput);
1119 loadData(is, myPostScale);
1120 loadData(is, myDoThreshold);
1121 loadData(is, myThreshold);
1122 loadData(is, myDoClampMin);
1123 loadData(is, myClampMin);
1124 loadData(is, myDoClampMax);
1125 loadData(is, myClampMax);
1126 loadData(is, myAttribMatch);
1127 loadData(is, myCreateMissing);
1128 loadData(is, myForceScalar);
1129 loadData(is, myDeleteSource);
1130 loadData(is, myErrorMissing);
1140 if (!thissop)
return getGroup();
1142 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
1150 if (!thissop)
return getGroupType();
1152 OP_Utils::evalOpParm(result, thissop,
"grouptype", cookparms.
getCookTime(), 0);
1160 if (!thissop)
return getDstAttrib();
1162 OP_Utils::evalOpParm(result, thissop,
"dstattrib", cookparms.
getCookTime(), 0);
1170 if (!thissop)
return getClass();
1172 OP_Utils::evalOpParm(result, thissop,
"class", cookparms.
getCookTime(), 0);
1173 return Class(result);
1180 if (!thissop)
return getCombinations().entries();
1182 OP_Utils::evalOpParm(result, thissop,
"numcombines", cookparms.
getCookTime(), 0);
1186 {
return opinstCombinations_enable(cookparms, &_idx); }
1190 if (!thissop)
return (myCombinations(_idx[0]).enable);
1192 _parmidx[1-1] = _idx[1-1] + 1;
1195 OP_Utils::evalOpParmInst(result, thissop,
"enable#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1199 {
return opinstCombinations_combine(cookparms, &_idx); }
1203 if (!thissop)
return (myCombinations(_idx[0]).combine);
1205 _parmidx[1-1] = _idx[1-1] + 1;
1208 OP_Utils::evalOpParmInst(result, thissop,
"combine#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1212 {
return opinstCombinations_adjust(cookparms, &_idx); }
1216 if (!thissop)
return (myCombinations(_idx[0]).adjust);
1218 _parmidx[1-1] = _idx[1-1] + 1;
1221 OP_Utils::evalOpParmInst(result, thissop,
"adjust#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1225 {
return opinstCombinations_srcattrib(cookparms, &_idx); }
1229 if (!thissop)
return (myCombinations(_idx[0]).srcattrib);
1231 _parmidx[1-1] = _idx[1-1] + 1;
1234 OP_Utils::evalOpParmInst(result, thissop,
"srcattrib#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1238 {
return opinstCombinations_srcinput(cookparms, &_idx); }
1242 if (!thissop)
return (myCombinations(_idx[0]).srcinput);
1244 _parmidx[1-1] = _idx[1-1] + 1;
1247 OP_Utils::evalOpParmInst(result, thissop,
"srcinput#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1251 {
return opinstCombinations_scale(cookparms, &_idx); }
1255 if (!thissop)
return (myCombinations(_idx[0]).
scale);
1257 _parmidx[1-1] = _idx[1-1] + 1;
1260 OP_Utils::evalOpParmInst(result, thissop,
"scale#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1264 {
return opinstCombinations_add(cookparms, &_idx); }
1268 if (!thissop)
return (myCombinations(_idx[0]).
add);
1270 _parmidx[1-1] = _idx[1-1] + 1;
1273 OP_Utils::evalOpParmInst(result, thissop,
"add#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1277 {
return opinstCombinations_process(cookparms, &_idx); }
1281 if (!thissop)
return (myCombinations(_idx[0]).process);
1283 _parmidx[1-1] = _idx[1-1] + 1;
1286 OP_Utils::evalOpParmInst(result, thissop,
"process#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1290 {
return opinstCombinations_blend(cookparms, &_idx); }
1294 if (!thissop)
return (myCombinations(_idx[0]).
blend);
1296 _parmidx[1-1] = _idx[1-1] + 1;
1299 OP_Utils::evalOpParmInst(result, thissop,
"blend#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1303 {
return opinstCombinations_doblendattrib(cookparms, &_idx); }
1307 if (!thissop)
return (myCombinations(_idx[0]).doblendattrib);
1309 _parmidx[1-1] = _idx[1-1] + 1;
1312 OP_Utils::evalOpParmInst(result, thissop,
"doblendattrib#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1316 {
return opinstCombinations_blendattrib(cookparms, &_idx); }
1320 if (!thissop)
return (myCombinations(_idx[0]).blendattrib);
1322 _parmidx[1-1] = _idx[1-1] + 1;
1325 OP_Utils::evalOpParmInst(result, thissop,
"blendattrib#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1329 {
return opinstCombinations_blendinput(cookparms, &_idx); }
1333 if (!thissop)
return (myCombinations(_idx[0]).blendinput);
1335 _parmidx[1-1] = _idx[1-1] + 1;
1338 OP_Utils::evalOpParmInst(result, thissop,
"blendinput#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1347 if (!thissop)
return getPostScale();
1349 OP_Utils::evalOpParm(result, thissop,
"postscale", cookparms.
getCookTime(), 0);
1357 if (!thissop)
return getDoThreshold();
1359 OP_Utils::evalOpParm(result, thissop,
"dothreshold", cookparms.
getCookTime(), 0);
1367 if (!thissop)
return getThreshold();
1369 OP_Utils::evalOpParm(result, thissop,
"threshold", cookparms.
getCookTime(), 0);
1377 if (!thissop)
return getDoClampMin();
1379 OP_Utils::evalOpParm(result, thissop,
"doclampmin", cookparms.
getCookTime(), 0);
1387 if (!thissop)
return getClampMin();
1389 OP_Utils::evalOpParm(result, thissop,
"clampmin", cookparms.
getCookTime(), 0);
1397 if (!thissop)
return getDoClampMax();
1399 OP_Utils::evalOpParm(result, thissop,
"doclampmax", cookparms.
getCookTime(), 0);
1407 if (!thissop)
return getClampMax();
1409 OP_Utils::evalOpParm(result, thissop,
"clampmax", cookparms.
getCookTime(), 0);
1417 if (!thissop)
return getAttribMatch();
1419 OP_Utils::evalOpParm(result, thissop,
"attribmatch", cookparms.
getCookTime(), 0);
1427 if (!thissop)
return getCreateMissing();
1429 OP_Utils::evalOpParm(result, thissop,
"createmissing", cookparms.
getCookTime(), 0);
1437 if (!thissop)
return getForceScalar();
1439 OP_Utils::evalOpParm(result, thissop,
"forcescalar", cookparms.
getCookTime(), 0);
1447 if (!thissop)
return getDeleteSource();
1449 OP_Utils::evalOpParm(result, thissop,
"deletesource", cookparms.
getCookTime(), 0);
1457 if (!thissop)
return getErrorMissing();
1459 OP_Utils::evalOpParm(result, thissop,
"errormissing", cookparms.
getCookTime(), 0);
1477 bool myCreateMissing;
1479 bool myDeleteSource;
1480 bool myErrorMissing;
bool isParmColorRamp(exint idx) const override
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
UT_StringHolder opinstCombinations_srcattrib(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool getDoThreshold() const
ParmType getNestParmType(TempIndex fieldnum) const override
bool operator==(const Combinations &src) const
fpreal64 getPostScale() const
fpreal64 opCombinations_add(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void saveData(std::ostream &os, UT_Matrix2D v)
static void loadData(UT_IStream &is, UT_Vector4D &v)
void setDoClampMin(bool val)
static void saveData(std::ostream &os, UT_Vector2D v)
GLenum GLuint GLenum GLsizei const GLchar * buf
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
bool operator==(const SOP_AttribCombineParms &src) const
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
SOP_Node * getNode() const
void copyFrom(const OP_NodeParms *src) override
int64 opinstCombinations_srcinput(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
UT_StringHolder opCombinations_srcattrib(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
exint bread(int32 *buffer, exint asize=1)
bool getDoClampMin() const
static void saveData(std::ostream &os, UT_Matrix4D v)
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
static void saveData(std::ostream &os, UT_Vector4D v)
static void saveData(std::ostream &os, bool v)
const UT_StringHolder & getAttribMatch() const
const char * getNestParmName(TempIndex fieldnum) const override
static void saveData(std::ostream &os, fpreal64 v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
int64 opinstCombinations_process(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
const UT_StringHolder & getGroup() const
static void loadData(UT_IStream &is, UT_Matrix4D &v)
static void loadData(UT_IStream &is, UT_Matrix2D &v)
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
const OP_Context & context() const
fpreal64 opCombinations_blend(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
constexpr SYS_FORCE_INLINE T & z() noexcept
int64 opCombinations_combine(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
SYS_FORCE_INLINE const char * buffer() const
GLuint GLsizei GLsizei * length
UT_StringHolder srcattrib
An output stream object that owns its own string buffer storage.
exint opCombinations(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
bool getErrorMissing() const
**But if you need a result
void setDoClampMax(bool val)
fpreal64 getClampMax() const
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
UT_StringHolder opAttribMatch(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, fpreal64 &v)
int64 opCombinations_doblendattrib(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool opinstCombinations_enable(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void saveData(std::ostream &os, UT_StringHolder s)
constexpr SYS_FORCE_INLINE T & x() noexcept
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
GLuint GLsizei const GLuint const GLintptr * offsets
constexpr SYS_FORCE_INLINE T & x() noexcept
vint4 blend(const vint4 &a, const vint4 &b, const vbool4 &mask)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
GA_API const UT_StringHolder scale
int64 opinstCombinations_combine(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
bool getCreateMissing() const
int64 opCombinations_process(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setErrorMissing(bool val)
GroupType getGroupType() const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
static void loadData(UT_IStream &is, UT_Vector4I &v)
static void loadData(UT_IStream &is, UT_Vector2D &v)
bool getDeleteSource() const
int64 opinstCombinations_doblendattrib(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
constexpr SYS_FORCE_INLINE T & z() noexcept
const UT_StringHolder & getDstAttrib() const
void setDoThreshold(bool val)
static void saveData(std::ostream &os, int64 v)
bool getForceScalar() const
int64 opCombinations_srcinput(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
int64 opinstCombinations_adjust(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
exint read(bool *array, exint sz=1)
const OP_GraphProxy * graph() const
void setClampMax(fpreal64 val)
bool opDoThreshold(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder blendattrib
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
static void loadData(UT_IStream &is, int64 &v)
bool getDoClampMax() const
fpreal64 opinstCombinations_add(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool opDeleteSource(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 saveData(std::ostream &os, UT_Vector3D v)
int64 opinstCombinations_blendinput(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
fpreal64 opinstCombinations_blend(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
void setPostScale(fpreal64 val)
const UT_Array< Combinations > & getCombinations() const
bool opDoClampMax(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
fpreal64 getClampMin() const
bool opCombinations_enable(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
SYS_FORCE_INLINE void strcat(const char *src)
void saveBinary(std::ostream &os) const
Save string to binary stream.
void setClampMin(fpreal64 val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
GT_API const UT_StringHolder version
static void loadData(UT_IStream &is, UT_Matrix3D &v)
fpreal64 opClampMax(const SOP_NodeVerb::CookParms &cookparms) const
exint entries() const
Alias of size(). size() is preferred.
void setDeleteSource(bool val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
static void saveData(std::ostream &os, PRM_DataItemHandle s)
int int appendSprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
fpreal64 opPostScale(const SOP_NodeVerb::CookParms &cookparms) const
int64 opCombinations_blendinput(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
fpreal64 opCombinations_scale(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool opErrorMissing(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
fpreal64 opinstCombinations_scale(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
DEP_MicroNode * depnode() const
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
fpreal64 opClampMin(const SOP_NodeVerb::CookParms &cookparms) const
int64 opCombinations_adjust(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setAttribMatch(const UT_StringHolder &val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
constexpr SYS_FORCE_INLINE T & w() noexcept
SYS_FORCE_INLINE void append(char character)
void setForceScalar(bool val)
bool opDoClampMin(const SOP_NodeVerb::CookParms &cookparms) const
exint getNestNumParms(TempIndex idx) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
fpreal getCookTime() const
SYS_FORCE_INLINE UT_StringHolder getToken(GroupType enum_value)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
bool operator!=(const Combinations &src) const
const char * findChar(int c) const
static void loadData(UT_IStream &is, UT_Vector2I &v)
static void loadData(UT_IStream &is, UT_StringHolder &v)
bool opForceScalar(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opCombinations_blendattrib(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
ImageBuf OIIO_API add(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
static void loadData(UT_IStream &is, UT_Vector3I &v)
void setGroupType(GroupType val)
void loadFromOpSubclass(const LoadParms &loadparms) override
constexpr SYS_FORCE_INLINE T & y() noexcept
UT_StringHolder opDstAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void setGroup(const UT_StringHolder &val)
Class opClass(const SOP_NodeVerb::CookParms &cookparms) const
bool load(UT_IStream &is)
fpreal64 opThreshold(const SOP_NodeVerb::CookParms &cookparms) const
void setThreshold(fpreal64 val)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
static void loadData(UT_IStream &is, UT_Vector3D &v)
static void loadData(UT_IStream &is, bool &v)
void setCombinations(const UT_Array< Combinations > &val)
constexpr SYS_FORCE_INLINE T & y() noexcept
void save(std::ostream &os) const
SYS_FORCE_INLINE bool isstring() const
bool opCreateMissing(const SOP_NodeVerb::CookParms &cookparms) const
void setCreateMissing(bool val)
GroupType opGroupType(const SOP_NodeVerb::CookParms &cookparms) const
bool operator!=(const SOP_AttribCombineParms &src) const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
fpreal64 getThreshold() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
UT_StringHolder createString(const UT_Array< Combinations > &list) const
static void saveData(std::ostream &os, UT_Matrix3D v)
void setDstAttrib(const UT_StringHolder &val)
UT_StringHolder opinstCombinations_blendattrib(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
constexpr SYS_FORCE_INLINE T & x() noexcept
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override