23 namespace SOP_GroupRangeEnums
35 using namespace UT::Literal;
55 using namespace UT::Literal;
76 using namespace UT::Literal;
97 using namespace UT::Literal;
146 groupname =
"group#"_UTsh;
160 connectedgeo =
false;
166 colallowonbnd =
true;
168 keeponlypartnum =
true;
175 if (enable != src.
enable)
return false;
176 if (groupname != src.
groupname)
return false;
177 if (group != src.
group)
return false;
178 if (grouptype != src.
grouptype)
return false;
179 if (mergeop != src.
mergeop)
return false;
180 if (method != src.
method)
return false;
182 if (
end != src.
end)
return false;
191 if (useattrib != src.
useattrib)
return false;
192 if (attrib != src.
attrib)
return false;
194 if (colgroup != src.
colgroup)
return false;
197 if (usepartnum != src.
usepartnum)
return false;
199 if (partnum != src.
partnum)
return false;
215 for (
int i = 0; i < list.
entries(); i++)
221 buf.
appendSprintf(
"%s", (list(i).enable) ?
"true" :
"false");
251 buf.
appendSprintf(
"%s", (list(i).connectedgeo) ?
"true" :
"false");
253 buf.
appendSprintf(
"%s", (list(i).useattrib) ?
"true" :
"false");
257 buf.
appendSprintf(
"%s", (list(i).usecolgroup) ?
"true" :
"false");
263 buf.
appendSprintf(
"%s", (list(i).colallowonbnd) ?
"true" :
"false");
265 buf.
appendSprintf(
"%s", (list(i).usepartnum) ?
"true" :
"false");
267 buf.
appendSprintf(
"%s", (list(i).keeponlypartnum) ?
"true" :
"false");
281 myNumrange.setSize(1);
294 if (myNumrange != src.myNumrange)
return false;
314 graph->
evalOpParm(length, nodeidx,
"numrange", time, 0);
315 if (length < 0) length = 0;
316 myNumrange.setSize(length);
323 auto && _curentry = myNumrange(i);
325 _curentry.enable =
true;
327 graph->
evalOpParmInst(_curentry.enable, nodeidx,
"enable#", parmidx, offsets, time, 0, 2-1);
328 _curentry.groupname =
"group#"_UTsh;
329 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
330 graph->
evalOpParmInst(_curentry.groupname, nodeidx,
"groupname#", parmidx, offsets, time, 0, 2-1);
331 _curentry.group =
""_UTsh;
333 graph->
evalOpParmInst(_curentry.group, nodeidx,
"group#", parmidx, offsets, time, 0, 2-1);
334 _curentry.grouptype = 1;
336 graph->
evalOpParmInst(_curentry.grouptype, nodeidx,
"grouptype#", parmidx, offsets, time, 0, 2-1);
337 _curentry.mergeop = 0;
339 graph->
evalOpParmInst(_curentry.mergeop, nodeidx,
"mergeop#", parmidx, offsets, time, 0, 2-1);
340 _curentry.method = 1;
342 graph->
evalOpParmInst(_curentry.method, nodeidx,
"method#", parmidx, offsets, time, 0, 2-1);
344 if (
true && ( (
true&&!(((_curentry.method==3)))) ) )
345 graph->
evalOpParmInst(_curentry.start, nodeidx,
"start#", parmidx, offsets, time, 0, 2-1);
347 if (
true && ( (
true&&!(((_curentry.method!=0)&&(_curentry.method!=1)))) ) )
348 graph->
evalOpParmInst(_curentry.end, nodeidx,
"end#", parmidx, offsets, time, 0, 2-1);
349 _curentry.length = 1;
350 if (
true && ( (
true&&!(((_curentry.method!=2)))) ) )
351 graph->
evalOpParmInst(_curentry.length, nodeidx,
"length#", parmidx, offsets, time, 0, 2-1);
352 _curentry.partition = 0;
353 if (
true && ( (
true&&!(((_curentry.method!=3)))) ) )
354 graph->
evalOpParmInst(_curentry.partition, nodeidx,
"partition#", parmidx, offsets, time, 0, 2-1);
355 _curentry.numpartition = 1;
356 if (
true && ( (
true&&!(((_curentry.method!=3)))) ) )
357 graph->
evalOpParmInst(_curentry.numpartition, nodeidx,
"numpartition#", parmidx, offsets, time, 0, 2-1);
358 _curentry.invert =
false;
360 graph->
evalOpParmInst(_curentry.invert, nodeidx,
"invert#", parmidx, offsets, time, 0, 2-1);
361 _curentry.selectamount = 1;
363 graph->
evalOpParmInst(_curentry.selectamount, nodeidx,
"selectamount#", parmidx, offsets, time, 0, 2-1);
364 _curentry.selecttotal = 1;
366 graph->
evalOpParmInst(_curentry.selecttotal, nodeidx,
"selecttotal#", parmidx, offsets, time, 0, 2-1);
367 _curentry.selectoffset = 0;
369 graph->
evalOpParmInst(_curentry.selectoffset, nodeidx,
"selectoffset#", parmidx, offsets, time, 0, 2-1);
370 _curentry.connectedgeo =
false;
372 graph->
evalOpParmInst(_curentry.connectedgeo, nodeidx,
"connectedgeo#", parmidx, offsets, time, 0, 2-1);
373 _curentry.useattrib =
false;
375 graph->
evalOpParmInst(_curentry.useattrib, nodeidx,
"useattrib#", parmidx, offsets, time, 0, 2-1);
376 _curentry.attrib =
""_UTsh;
377 if (
true && ( (
true&&!(((_curentry.useattrib==0)))) ) )
378 graph->
evalOpParmInst(_curentry.attrib, nodeidx,
"attrib#", parmidx, offsets, time, 0, 2-1);
379 _curentry.usecolgroup =
false;
381 graph->
evalOpParmInst(_curentry.usecolgroup, nodeidx,
"usecolgroup#", parmidx, offsets, time, 0, 2-1);
382 _curentry.colgroup =
""_UTsh;
383 if (
true && ( (
true&&!(((_curentry.usecolgroup==0)))) ) )
384 graph->
evalOpParmInst(_curentry.colgroup, nodeidx,
"colgroup#", parmidx, offsets, time, 0, 2-1);
385 _curentry.colgrouptype = 0;
386 if (
true && ( (
true&&!(((_curentry.usecolgroup==0)))) ) )
387 graph->
evalOpParmInst(_curentry.colgrouptype, nodeidx,
"colgrouptype#", parmidx, offsets, time, 0, 2-1);
388 _curentry.colallowonbnd =
true;
389 if (
true && ( (
true&&!(((_curentry.usecolgroup==0)))) ) )
390 graph->
evalOpParmInst(_curentry.colallowonbnd, nodeidx,
"colallowonbnd#", parmidx, offsets, time, 0, 2-1);
391 _curentry.usepartnum =
false;
393 graph->
evalOpParmInst(_curentry.usepartnum, nodeidx,
"usepartnum#", parmidx, offsets, time, 0, 2-1);
394 _curentry.keeponlypartnum =
true;
395 if (
true && ( (
true&&!(((_curentry.usepartnum==0)))) ) )
396 graph->
evalOpParmInst(_curentry.keeponlypartnum, nodeidx,
"keeponlypartnum#", parmidx, offsets, time, 0, 2-1);
397 _curentry.partnum = 0;
398 if (
true && ( (
true&&!(((_curentry.usepartnum==0)))) ) )
399 graph->
evalOpParmInst(_curentry.partnum, nodeidx,
"partnum#", parmidx, offsets, time, 0, 2-1);
420 template <
typename T>
427 if (idx.
size() != instance.
size()+1)
433 coerceValue(value, myNumrange.entries());
434 else if (instance[0] < myNumrange.entries())
436 auto && _data = myNumrange(instance[0]);
440 coerceValue(value, _data.enable);
443 coerceValue(value, _data.groupname);
446 coerceValue(value, _data.group);
449 coerceValue(value, _data.grouptype);
452 coerceValue(value, _data.mergeop);
455 coerceValue(value, _data.method);
458 coerceValue(value, _data.start);
461 coerceValue(value, _data.end);
464 coerceValue(value, _data.length);
467 coerceValue(value, _data.partition);
470 coerceValue(value, _data.numpartition);
473 coerceValue(value, _data.invert);
476 coerceValue(value, _data.selectamount);
479 coerceValue(value, _data.selecttotal);
482 coerceValue(value, _data.selectoffset);
485 coerceValue(value, _data.connectedgeo);
488 coerceValue(value, _data.useattrib);
491 coerceValue(value, _data.attrib);
494 coerceValue(value, _data.usecolgroup);
497 coerceValue(value, _data.colgroup);
500 coerceValue(value, _data.colgrouptype);
503 coerceValue(value, _data.colallowonbnd);
506 coerceValue(value, _data.usepartnum);
509 coerceValue(value, _data.keeponlypartnum);
512 coerceValue(value, _data.partnum);
532 { doGetParmValue(idx, instance, value); }
534 { doGetParmValue(idx, instance, value); }
536 { doGetParmValue(idx, instance, value); }
538 { doGetParmValue(idx, instance, value); }
540 { doGetParmValue(idx, instance, value); }
542 { doGetParmValue(idx, instance, value); }
544 { doGetParmValue(idx, instance, value); }
546 { doGetParmValue(idx, instance, value); }
548 { doGetParmValue(idx, instance, value); }
550 { doGetParmValue(idx, instance, value); }
552 { doGetParmValue(idx, instance, value); }
554 template <
typename T>
561 if (idx.
size() != instance.
size()+1)
569 coerceValue(newsize, value);
570 if (newsize < 0) newsize = 0;
571 myNumrange.setSize(newsize);
577 myNumrange.setSizeIfNeeded(instance[0]+1);
578 auto && _data = myNumrange(instance[0]);
582 coerceValue(_data.enable, value);
585 coerceValue(_data.groupname, value);
588 coerceValue(_data.group, value);
591 coerceValue(_data.grouptype, value);
594 coerceValue(_data.mergeop, value);
597 coerceValue(_data.method, value);
600 coerceValue(_data.start, value);
603 coerceValue(_data.end, value);
606 coerceValue(_data.length, value);
609 coerceValue(_data.partition, value);
612 coerceValue(_data.numpartition, value);
615 coerceValue(_data.invert, value);
618 coerceValue(_data.selectamount, value);
621 coerceValue(_data.selecttotal, value);
624 coerceValue(_data.selectoffset, value);
627 coerceValue(_data.connectedgeo, value);
630 coerceValue(_data.useattrib, value);
633 coerceValue(_data.attrib, value);
636 coerceValue(_data.usecolgroup, value);
639 coerceValue(_data.colgroup, value);
642 coerceValue(_data.colgrouptype, value);
645 coerceValue(_data.colallowonbnd, value);
648 coerceValue(_data.usepartnum, value);
651 coerceValue(_data.keeponlypartnum, value);
654 coerceValue(_data.partnum, value);
665 { doSetParmValue(idx, instance, value); }
667 { doSetParmValue(idx, instance, value); }
669 { doSetParmValue(idx, instance, value); }
671 { doSetParmValue(idx, instance, value); }
673 { doSetParmValue(idx, instance, value); }
675 { doSetParmValue(idx, instance, value); }
677 { doSetParmValue(idx, instance, value); }
679 { doSetParmValue(idx, instance, value); }
681 { doSetParmValue(idx, instance, value); }
683 { doSetParmValue(idx, instance, value); }
685 { doSetParmValue(idx, instance, value); }
703 if (fieldnum.
size() < 1)
708 if (fieldnum.
size() == 1)
733 return "numpartition#";
737 return "selectamount#";
739 return "selecttotal#";
741 return "selectoffset#";
743 return "connectedgeo#";
749 return "usecolgroup#";
753 return "colgrouptype#";
755 return "colallowonbnd#";
757 return "usepartnum#";
759 return "keeponlypartnum#";
772 if (fieldnum.
size() < 1)
773 return PARM_UNSUPPORTED;
777 if (fieldnum.
size() == 1)
778 return PARM_MULTIPARM;
833 return PARM_UNSUPPORTED;
836 return PARM_UNSUPPORTED;
872 loadData(is, rampdata);
890 int typelen = colon - data.
buffer();
904 {
int64 iv =
v; UTwrite(os, &iv); }
906 { UTwrite<fpreal64>(os, &
v); }
908 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
910 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
911 UTwrite<fpreal64>(os, &v.
z()); }
913 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
914 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
926 if (s) s->save(ostr);
928 saveData(os, result);
935 ostr << s->getDataTypeToken();
940 saveData(os, result);
944 void save(std::ostream &os)
const
950 UTwrite(os, &length);
953 auto && _curentry = myNumrange(i);
955 saveData(os, _curentry.enable);
956 saveData(os, _curentry.groupname);
957 saveData(os, _curentry.group);
958 saveData(os, _curentry.grouptype);
959 saveData(os, _curentry.mergeop);
960 saveData(os, _curentry.method);
961 saveData(os, _curentry.start);
962 saveData(os, _curentry.end);
963 saveData(os, _curentry.length);
964 saveData(os, _curentry.partition);
965 saveData(os, _curentry.numpartition);
966 saveData(os, _curentry.invert);
967 saveData(os, _curentry.selectamount);
968 saveData(os, _curentry.selecttotal);
969 saveData(os, _curentry.selectoffset);
970 saveData(os, _curentry.connectedgeo);
971 saveData(os, _curentry.useattrib);
972 saveData(os, _curentry.attrib);
973 saveData(os, _curentry.usecolgroup);
974 saveData(os, _curentry.colgroup);
975 saveData(os, _curentry.colgrouptype);
976 saveData(os, _curentry.colallowonbnd);
977 saveData(os, _curentry.usepartnum);
978 saveData(os, _curentry.keeponlypartnum);
979 saveData(os, _curentry.partnum);
998 myNumrange.setSize(length);
1001 auto && _curentry = myNumrange(i);
1003 loadData(is, _curentry.enable);
1004 loadData(is, _curentry.groupname);
1005 loadData(is, _curentry.group);
1006 loadData(is, _curentry.grouptype);
1007 loadData(is, _curentry.mergeop);
1008 loadData(is, _curentry.method);
1009 loadData(is, _curentry.start);
1010 loadData(is, _curentry.end);
1011 loadData(is, _curentry.length);
1012 loadData(is, _curentry.partition);
1013 loadData(is, _curentry.numpartition);
1014 loadData(is, _curentry.invert);
1015 loadData(is, _curentry.selectamount);
1016 loadData(is, _curentry.selecttotal);
1017 loadData(is, _curentry.selectoffset);
1018 loadData(is, _curentry.connectedgeo);
1019 loadData(is, _curentry.useattrib);
1020 loadData(is, _curentry.attrib);
1021 loadData(is, _curentry.usecolgroup);
1022 loadData(is, _curentry.colgroup);
1023 loadData(is, _curentry.colgrouptype);
1024 loadData(is, _curentry.colallowonbnd);
1025 loadData(is, _curentry.usepartnum);
1026 loadData(is, _curentry.keeponlypartnum);
1027 loadData(is, _curentry.partnum);
1040 if (!thissop)
return getNumrange().entries();
1042 OP_Utils::evalOpParm(result, thissop,
"numrange", cookparms.
getCookTime(), 0);
1046 {
return opinstNumrange_enable(cookparms, &_idx); }
1050 if (!thissop)
return (myNumrange(_idx[0]).enable);
1052 _parmidx[1-1] = _idx[1-1] + 1;
1055 OP_Utils::evalOpParmInst(result, thissop,
"enable#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1059 {
return opinstNumrange_groupname(cookparms, &_idx); }
1063 if (!thissop)
return (myNumrange(_idx[0]).groupname);
1065 _parmidx[1-1] = _idx[1-1] + 1;
1068 OP_Utils::evalOpParmInst(result, thissop,
"groupname#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1072 {
return opinstNumrange_group(cookparms, &_idx); }
1076 if (!thissop)
return (myNumrange(_idx[0]).group);
1078 _parmidx[1-1] = _idx[1-1] + 1;
1081 OP_Utils::evalOpParmInst(result, thissop,
"group#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1085 {
return opinstNumrange_grouptype(cookparms, &_idx); }
1089 if (!thissop)
return (myNumrange(_idx[0]).grouptype);
1091 _parmidx[1-1] = _idx[1-1] + 1;
1094 OP_Utils::evalOpParmInst(result, thissop,
"grouptype#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1098 {
return opinstNumrange_mergeop(cookparms, &_idx); }
1102 if (!thissop)
return (myNumrange(_idx[0]).mergeop);
1104 _parmidx[1-1] = _idx[1-1] + 1;
1107 OP_Utils::evalOpParmInst(result, thissop,
"mergeop#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1111 {
return opinstNumrange_method(cookparms, &_idx); }
1115 if (!thissop)
return (myNumrange(_idx[0]).method);
1117 _parmidx[1-1] = _idx[1-1] + 1;
1120 OP_Utils::evalOpParmInst(result, thissop,
"method#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1124 {
return opinstNumrange_start(cookparms, &_idx); }
1128 if (!thissop)
return (myNumrange(_idx[0]).
start);
1130 _parmidx[1-1] = _idx[1-1] + 1;
1133 OP_Utils::evalOpParmInst(result, thissop,
"start#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1137 {
return opinstNumrange_end(cookparms, &_idx); }
1141 if (!thissop)
return (myNumrange(_idx[0]).
end);
1143 _parmidx[1-1] = _idx[1-1] + 1;
1146 OP_Utils::evalOpParmInst(result, thissop,
"end#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1150 {
return opinstNumrange_length(cookparms, &_idx); }
1154 if (!thissop)
return (myNumrange(_idx[0]).
length);
1156 _parmidx[1-1] = _idx[1-1] + 1;
1159 OP_Utils::evalOpParmInst(result, thissop,
"length#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1163 {
return opinstNumrange_partition(cookparms, &_idx); }
1167 if (!thissop)
return (myNumrange(_idx[0]).
partition);
1169 _parmidx[1-1] = _idx[1-1] + 1;
1172 OP_Utils::evalOpParmInst(result, thissop,
"partition#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1176 {
return opinstNumrange_numpartition(cookparms, &_idx); }
1180 if (!thissop)
return (myNumrange(_idx[0]).numpartition);
1182 _parmidx[1-1] = _idx[1-1] + 1;
1185 OP_Utils::evalOpParmInst(result, thissop,
"numpartition#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1189 {
return opinstNumrange_invert(cookparms, &_idx); }
1193 if (!thissop)
return (myNumrange(_idx[0]).
invert);
1195 _parmidx[1-1] = _idx[1-1] + 1;
1198 OP_Utils::evalOpParmInst(result, thissop,
"invert#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1202 {
return opinstNumrange_selectamount(cookparms, &_idx); }
1206 if (!thissop)
return (myNumrange(_idx[0]).selectamount);
1208 _parmidx[1-1] = _idx[1-1] + 1;
1211 OP_Utils::evalOpParmInst(result, thissop,
"selectamount#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1215 {
return opinstNumrange_selecttotal(cookparms, &_idx); }
1219 if (!thissop)
return (myNumrange(_idx[0]).selecttotal);
1221 _parmidx[1-1] = _idx[1-1] + 1;
1224 OP_Utils::evalOpParmInst(result, thissop,
"selecttotal#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1228 {
return opinstNumrange_selectoffset(cookparms, &_idx); }
1232 if (!thissop)
return (myNumrange(_idx[0]).selectoffset);
1234 _parmidx[1-1] = _idx[1-1] + 1;
1237 OP_Utils::evalOpParmInst(result, thissop,
"selectoffset#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1241 {
return opinstNumrange_connectedgeo(cookparms, &_idx); }
1245 if (!thissop)
return (myNumrange(_idx[0]).connectedgeo);
1247 _parmidx[1-1] = _idx[1-1] + 1;
1250 OP_Utils::evalOpParmInst(result, thissop,
"connectedgeo#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1254 {
return opinstNumrange_useattrib(cookparms, &_idx); }
1258 if (!thissop)
return (myNumrange(_idx[0]).useattrib);
1260 _parmidx[1-1] = _idx[1-1] + 1;
1263 OP_Utils::evalOpParmInst(result, thissop,
"useattrib#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1267 {
return opinstNumrange_attrib(cookparms, &_idx); }
1271 if (!thissop)
return (myNumrange(_idx[0]).attrib);
1273 _parmidx[1-1] = _idx[1-1] + 1;
1276 OP_Utils::evalOpParmInst(result, thissop,
"attrib#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1280 {
return opinstNumrange_usecolgroup(cookparms, &_idx); }
1284 if (!thissop)
return (myNumrange(_idx[0]).usecolgroup);
1286 _parmidx[1-1] = _idx[1-1] + 1;
1289 OP_Utils::evalOpParmInst(result, thissop,
"usecolgroup#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1293 {
return opinstNumrange_colgroup(cookparms, &_idx); }
1297 if (!thissop)
return (myNumrange(_idx[0]).colgroup);
1299 _parmidx[1-1] = _idx[1-1] + 1;
1302 OP_Utils::evalOpParmInst(result, thissop,
"colgroup#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1306 {
return opinstNumrange_colgrouptype(cookparms, &_idx); }
1310 if (!thissop)
return (myNumrange(_idx[0]).colgrouptype);
1312 _parmidx[1-1] = _idx[1-1] + 1;
1315 OP_Utils::evalOpParmInst(result, thissop,
"colgrouptype#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1319 {
return opinstNumrange_colallowonbnd(cookparms, &_idx); }
1323 if (!thissop)
return (myNumrange(_idx[0]).colallowonbnd);
1325 _parmidx[1-1] = _idx[1-1] + 1;
1328 OP_Utils::evalOpParmInst(result, thissop,
"colallowonbnd#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1332 {
return opinstNumrange_usepartnum(cookparms, &_idx); }
1336 if (!thissop)
return (myNumrange(_idx[0]).usepartnum);
1338 _parmidx[1-1] = _idx[1-1] + 1;
1341 OP_Utils::evalOpParmInst(result, thissop,
"usepartnum#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1345 {
return opinstNumrange_keeponlypartnum(cookparms, &_idx); }
1349 if (!thissop)
return (myNumrange(_idx[0]).keeponlypartnum);
1351 _parmidx[1-1] = _idx[1-1] + 1;
1354 OP_Utils::evalOpParmInst(result, thissop,
"keeponlypartnum#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1358 {
return opinstNumrange_partnum(cookparms, &_idx); }
1362 if (!thissop)
return (myNumrange(_idx[0]).partnum);
1364 _parmidx[1-1] = _idx[1-1] + 1;
1367 OP_Utils::evalOpParmInst(result, thissop,
"partnum#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
bool opinstNumrange_connectedgeo(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
GLenum GLuint GLenum GLsizei const GLchar * buf
UT_StringHolder opNumrange_attrib(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void loadData(UT_IStream &is, UT_Vector3I &v)
static void saveData(std::ostream &os, bool v)
int64 opNumrange_partition(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool isParmColorRamp(exint idx) const override
SOP_Node * getNode() const
static void saveData(std::ostream &os, fpreal64 v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
UT_StringHolder opinstNumrange_groupname(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
int64 opNumrange_method(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void saveData(std::ostream &os, int64 v)
static void loadData(UT_IStream &is, UT_Matrix2D &v)
static void loadData(UT_IStream &is, UT_Vector2I &v)
void partition(I begin, I middle, I end, const Pred &pred, I *out_eqbeg, I *out_eqend)
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
int64 opNumrange_start(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
UT_StringHolder createString(const UT_Array< Numrange > &list) const
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
int64 opinstNumrange_selecttotal(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
bool opNumrange_invert(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool operator==(const SOP_GroupRangeParms &src) const
bool opinstNumrange_colallowonbnd(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
const OP_Context & context() const
constexpr SYS_FORCE_INLINE T & z() noexcept
SYS_FORCE_INLINE const char * buffer() const
int64 opinstNumrange_partnum(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
GLuint GLsizei GLsizei * length
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
UT_StringHolder opNumrange_groupname(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
An output stream object that owns its own string buffer storage.
UT_StringHolder opNumrange_colgroup(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool opNumrange_colallowonbnd(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
**But if you need a result
static void saveData(std::ostream &os, UT_StringHolder s)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
int64 opinstNumrange_method(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
int64 opinstNumrange_partition(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
int64 opNumrange_selecttotal(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
int64 opNumrange_selectamount(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
constexpr SYS_FORCE_INLINE T & x() noexcept
void save(std::ostream &os) const
void loadFromOpSubclass(const LoadParms &loadparms) override
GLuint GLsizei const GLuint const GLintptr * offsets
bool opinstNumrange_usepartnum(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
constexpr SYS_FORCE_INLINE T & x() noexcept
static void loadData(UT_IStream &is, bool &v)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
int64 opNumrange_end(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
const char * getNestParmName(TempIndex fieldnum) const override
int64 opNumrange_partnum(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void loadData(UT_IStream &is, UT_Vector4D &v)
int64 opNumrange_selectoffset(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
UT_StringHolder opinstNumrange_colgroup(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
bool operator!=(const Numrange &src) const
constexpr SYS_FORCE_INLINE T & z() noexcept
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
static void loadData(UT_IStream &is, UT_Matrix4D &v)
SYS_FORCE_INLINE UT_StringHolder getToken(Grouptype enum_value)
bool opinstNumrange_usecolgroup(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
int64 opinstNumrange_mergeop(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void saveData(std::ostream &os, UT_Matrix3D v)
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
exint getNestNumParms(TempIndex idx) const override
int64 opinstNumrange_colgrouptype(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
exint read(bool *array, exint sz=1)
const OP_GraphProxy * graph() const
bool opNumrange_connectedgeo(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void saveData(std::ostream &os, UT_Matrix4D v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
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
int64 opinstNumrange_numpartition(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void saveData(std::ostream &os, UT_Matrix2D v)
const UT_Array< Numrange > & getNumrange() const
int64 opinstNumrange_selectamount(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool opNumrange_usepartnum(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
int64 opNumrange_mergeop(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
UT_StringHolder groupname
UT_StringHolder opNumrange_group(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
static void loadData(UT_IStream &is, int64 &v)
static void saveData(std::ostream &os, UT_Vector4D v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
SYS_FORCE_INLINE void strcat(const char *src)
static void loadData(UT_IStream &is, fpreal64 &v)
void saveBinary(std::ostream &os) const
Save string to binary stream.
static void loadData(UT_IStream &is, UT_StringHolder &v)
GT_API const UT_StringHolder version
exint entries() const
Alias of size(). size() is preferred.
bool opNumrange_keeponlypartnum(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool opinstNumrange_useattrib(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void copyFrom(const OP_NodeParms *src) override
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
bool opinstNumrange_enable(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
int64 opinstNumrange_start(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
int int appendSprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
static void saveData(std::ostream &os, UT_Vector2D v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
bool opinstNumrange_invert(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void loadData(UT_IStream &is, UT_Matrix3D &v)
DEP_MicroNode * depnode() const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
LeafData & operator=(const LeafData &)=delete
ParmType getNestParmType(TempIndex fieldnum) const override
int64 opinstNumrange_grouptype(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
Utility class for containing a color ramp.
int64 opinstNumrange_length(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
int64 opinstNumrange_selectoffset(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
constexpr SYS_FORCE_INLINE T & w() noexcept
SYS_FORCE_INLINE void append(char character)
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
UT_StringHolder opinstNumrange_attrib(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool opNumrange_usecolgroup(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setNumrange(const UT_Array< Numrange > &val)
static void loadData(UT_IStream &is, UT_Vector2D &v)
static void saveData(std::ostream &os, UT_Vector3D v)
fpreal getCookTime() const
int64 opinstNumrange_end(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
int64 opNumrange_colgrouptype(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
int64 opNumrange_grouptype(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
const char * findChar(int c) const
bool opNumrange_useattrib(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool opinstNumrange_keeponlypartnum(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool operator==(const Numrange &src) const
constexpr SYS_FORCE_INLINE T & y() noexcept
exint opNumrange(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opinstNumrange_group(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
bool opNumrange_enable(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void loadData(UT_IStream &is, UT_Vector4I &v)
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
bool load(UT_IStream &is)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
constexpr SYS_FORCE_INLINE T & y() noexcept
SYS_FORCE_INLINE bool isstring() const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
static void saveData(std::ostream &os, PRM_DataItemHandle s)
bool operator!=(const SOP_GroupRangeParms &src) const
int64 opNumrange_length(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
constexpr SYS_FORCE_INLINE T & x() noexcept
static void loadData(UT_IStream &is, UT_Vector3D &v)
int64 opNumrange_numpartition(const SOP_NodeVerb::CookParms &cookparms, int _idx) const