23 namespace SOP_GroupRangeEnums
91 groupname =
"group#"_UTsh;
105 connectedgeo =
false;
111 colallowonbnd =
true;
113 keeponlypartnum =
true;
120 if (enable != src.
enable)
return false;
121 if (groupname != src.
groupname)
return false;
122 if (group != src.
group)
return false;
123 if (grouptype != src.
grouptype)
return false;
124 if (mergeop != src.
mergeop)
return false;
125 if (method != src.
method)
return false;
127 if (
end != src.
end)
return false;
136 if (useattrib != src.
useattrib)
return false;
137 if (attrib != src.
attrib)
return false;
139 if (colgroup != src.
colgroup)
return false;
142 if (usepartnum != src.
usepartnum)
return false;
144 if (partnum != src.
partnum)
return false;
160 for (
int i = 0; i < list.
entries(); i++)
166 buf.
appendSprintf(
"%s", (list(i).enable) ?
"true" :
"false");
196 buf.
appendSprintf(
"%s", (list(i).connectedgeo) ?
"true" :
"false");
198 buf.
appendSprintf(
"%s", (list(i).useattrib) ?
"true" :
"false");
202 buf.
appendSprintf(
"%s", (list(i).usecolgroup) ?
"true" :
"false");
208 buf.
appendSprintf(
"%s", (list(i).colallowonbnd) ?
"true" :
"false");
210 buf.
appendSprintf(
"%s", (list(i).usepartnum) ?
"true" :
"false");
212 buf.
appendSprintf(
"%s", (list(i).keeponlypartnum) ?
"true" :
"false");
226 myNumrange.setSize(1);
239 if (myNumrange != src.myNumrange)
return false;
259 graph->
evalOpParm(length, nodeidx,
"numrange", time, 0);
260 if (length < 0) length = 0;
261 myNumrange.setSize(length);
268 auto && _curentry = myNumrange(i);
270 _curentry.enable =
true;
272 graph->
evalOpParmInst(_curentry.enable, nodeidx,
"enable#", parmidx, offsets, time, 0, 2-1);
273 _curentry.groupname =
"group#"_UTsh;
274 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
275 graph->
evalOpParmInst(_curentry.groupname, nodeidx,
"groupname#", parmidx, offsets, time, 0, 2-1);
276 _curentry.group =
""_UTsh;
278 graph->
evalOpParmInst(_curentry.group, nodeidx,
"group#", parmidx, offsets, time, 0, 2-1);
279 _curentry.grouptype = 1;
281 graph->
evalOpParmInst(_curentry.grouptype, nodeidx,
"grouptype#", parmidx, offsets, time, 0, 2-1);
282 _curentry.mergeop = 0;
284 graph->
evalOpParmInst(_curentry.mergeop, nodeidx,
"mergeop#", parmidx, offsets, time, 0, 2-1);
285 _curentry.method = 1;
287 graph->
evalOpParmInst(_curentry.method, nodeidx,
"method#", parmidx, offsets, time, 0, 2-1);
289 if (
true && ( (
true&&!(((_curentry.method==3)))) ) )
290 graph->
evalOpParmInst(_curentry.start, nodeidx,
"start#", parmidx, offsets, time, 0, 2-1);
292 if (
true && ( (
true&&!(((_curentry.method!=0)&&(_curentry.method!=1)))) ) )
293 graph->
evalOpParmInst(_curentry.end, nodeidx,
"end#", parmidx, offsets, time, 0, 2-1);
294 _curentry.length = 1;
295 if (
true && ( (
true&&!(((_curentry.method!=2)))) ) )
296 graph->
evalOpParmInst(_curentry.length, nodeidx,
"length#", parmidx, offsets, time, 0, 2-1);
297 _curentry.partition = 0;
298 if (
true && ( (
true&&!(((_curentry.method!=3)))) ) )
299 graph->
evalOpParmInst(_curentry.partition, nodeidx,
"partition#", parmidx, offsets, time, 0, 2-1);
300 _curentry.numpartition = 1;
301 if (
true && ( (
true&&!(((_curentry.method!=3)))) ) )
302 graph->
evalOpParmInst(_curentry.numpartition, nodeidx,
"numpartition#", parmidx, offsets, time, 0, 2-1);
303 _curentry.invert =
false;
305 graph->
evalOpParmInst(_curentry.invert, nodeidx,
"invert#", parmidx, offsets, time, 0, 2-1);
306 _curentry.selectamount = 1;
308 graph->
evalOpParmInst(_curentry.selectamount, nodeidx,
"selectamount#", parmidx, offsets, time, 0, 2-1);
309 _curentry.selecttotal = 1;
311 graph->
evalOpParmInst(_curentry.selecttotal, nodeidx,
"selecttotal#", parmidx, offsets, time, 0, 2-1);
312 _curentry.selectoffset = 0;
314 graph->
evalOpParmInst(_curentry.selectoffset, nodeidx,
"selectoffset#", parmidx, offsets, time, 0, 2-1);
315 _curentry.connectedgeo =
false;
317 graph->
evalOpParmInst(_curentry.connectedgeo, nodeidx,
"connectedgeo#", parmidx, offsets, time, 0, 2-1);
318 _curentry.useattrib =
false;
320 graph->
evalOpParmInst(_curentry.useattrib, nodeidx,
"useattrib#", parmidx, offsets, time, 0, 2-1);
321 _curentry.attrib =
""_UTsh;
322 if (
true && ( (
true&&!(((_curentry.useattrib==0)))) ) )
323 graph->
evalOpParmInst(_curentry.attrib, nodeidx,
"attrib#", parmidx, offsets, time, 0, 2-1);
324 _curentry.usecolgroup =
false;
326 graph->
evalOpParmInst(_curentry.usecolgroup, nodeidx,
"usecolgroup#", parmidx, offsets, time, 0, 2-1);
327 _curentry.colgroup =
""_UTsh;
328 if (
true && ( (
true&&!(((_curentry.usecolgroup==0)))) ) )
329 graph->
evalOpParmInst(_curentry.colgroup, nodeidx,
"colgroup#", parmidx, offsets, time, 0, 2-1);
330 _curentry.colgrouptype = 0;
331 if (
true && ( (
true&&!(((_curentry.usecolgroup==0)))) ) )
332 graph->
evalOpParmInst(_curentry.colgrouptype, nodeidx,
"colgrouptype#", parmidx, offsets, time, 0, 2-1);
333 _curentry.colallowonbnd =
true;
334 if (
true && ( (
true&&!(((_curentry.usecolgroup==0)))) ) )
335 graph->
evalOpParmInst(_curentry.colallowonbnd, nodeidx,
"colallowonbnd#", parmidx, offsets, time, 0, 2-1);
336 _curentry.usepartnum =
false;
338 graph->
evalOpParmInst(_curentry.usepartnum, nodeidx,
"usepartnum#", parmidx, offsets, time, 0, 2-1);
339 _curentry.keeponlypartnum =
true;
340 if (
true && ( (
true&&!(((_curentry.usepartnum==0)))) ) )
341 graph->
evalOpParmInst(_curentry.keeponlypartnum, nodeidx,
"keeponlypartnum#", parmidx, offsets, time, 0, 2-1);
342 _curentry.partnum = 0;
343 if (
true && ( (
true&&!(((_curentry.usepartnum==0)))) ) )
344 graph->
evalOpParmInst(_curentry.partnum, nodeidx,
"partnum#", parmidx, offsets, time, 0, 2-1);
365 template <
typename T>
372 if (idx.
size() != instance.
size()+1)
379 else if (instance[0] < myNumrange.entries())
381 auto && _data = myNumrange(instance[0]);
477 { doGetParmValue(idx, instance, value); }
479 { doGetParmValue(idx, instance, value); }
481 { doGetParmValue(idx, instance, value); }
483 { doGetParmValue(idx, instance, value); }
485 { doGetParmValue(idx, instance, value); }
487 { doGetParmValue(idx, instance, value); }
489 { doGetParmValue(idx, instance, value); }
491 { doGetParmValue(idx, instance, value); }
493 { doGetParmValue(idx, instance, value); }
495 { doGetParmValue(idx, instance, value); }
497 { doGetParmValue(idx, instance, value); }
499 template <
typename T>
506 if (idx.
size() != instance.
size()+1)
515 if (newsize < 0) newsize = 0;
516 myNumrange.setSize(newsize);
522 myNumrange.setSizeIfNeeded(instance[0]+1);
523 auto && _data = myNumrange(instance[0]);
610 { doSetParmValue(idx, instance, value); }
612 { doSetParmValue(idx, instance, value); }
614 { doSetParmValue(idx, instance, value); }
616 { doSetParmValue(idx, instance, value); }
618 { doSetParmValue(idx, instance, value); }
620 { doSetParmValue(idx, instance, value); }
622 { doSetParmValue(idx, instance, value); }
624 { doSetParmValue(idx, instance, value); }
626 { doSetParmValue(idx, instance, value); }
628 { doSetParmValue(idx, instance, value); }
630 { doSetParmValue(idx, instance, value); }
648 if (fieldnum.
size() < 1)
653 if (fieldnum.
size() == 1)
678 return "numpartition#";
682 return "selectamount#";
684 return "selecttotal#";
686 return "selectoffset#";
688 return "connectedgeo#";
694 return "usecolgroup#";
698 return "colgrouptype#";
700 return "colallowonbnd#";
702 return "usepartnum#";
704 return "keeponlypartnum#";
717 if (fieldnum.
size() < 1)
718 return PARM_UNSUPPORTED;
722 if (fieldnum.
size() == 1)
723 return PARM_MULTIPARM;
800 {
for (
int r = 0;
r < 2;
r++)
for (
int c = 0; c < 2; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
802 {
for (
int r = 0;
r < 3;
r++)
for (
int c = 0; c < 3; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
804 {
for (
int r = 0;
r < 4;
r++)
for (
int c = 0; c < 4; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
817 loadData(is, rampdata);
835 int typelen = colon - data.
buffer();
849 {
int64 iv =
v; UTwrite(os, &iv); }
851 { UTwrite<fpreal64>(os, &
v); }
853 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
855 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
856 UTwrite<fpreal64>(os, &v.
z()); }
858 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
859 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
871 if (s) s->save(ostr);
873 saveData(os, result);
880 ostr << s->getDataTypeToken();
885 saveData(os, result);
889 void save(std::ostream &os)
const
895 UTwrite(os, &length);
898 auto && _curentry = myNumrange(i);
900 saveData(os, _curentry.enable);
901 saveData(os, _curentry.groupname);
902 saveData(os, _curentry.group);
903 saveData(os, _curentry.grouptype);
904 saveData(os, _curentry.mergeop);
905 saveData(os, _curentry.method);
906 saveData(os, _curentry.start);
907 saveData(os, _curentry.end);
908 saveData(os, _curentry.length);
909 saveData(os, _curentry.partition);
910 saveData(os, _curentry.numpartition);
911 saveData(os, _curentry.invert);
912 saveData(os, _curentry.selectamount);
913 saveData(os, _curentry.selecttotal);
914 saveData(os, _curentry.selectoffset);
915 saveData(os, _curentry.connectedgeo);
916 saveData(os, _curentry.useattrib);
917 saveData(os, _curentry.attrib);
918 saveData(os, _curentry.usecolgroup);
919 saveData(os, _curentry.colgroup);
920 saveData(os, _curentry.colgrouptype);
921 saveData(os, _curentry.colallowonbnd);
922 saveData(os, _curentry.usepartnum);
923 saveData(os, _curentry.keeponlypartnum);
924 saveData(os, _curentry.partnum);
943 myNumrange.setSize(length);
946 auto && _curentry = myNumrange(i);
948 loadData(is, _curentry.enable);
949 loadData(is, _curentry.groupname);
950 loadData(is, _curentry.group);
951 loadData(is, _curentry.grouptype);
952 loadData(is, _curentry.mergeop);
953 loadData(is, _curentry.method);
954 loadData(is, _curentry.start);
955 loadData(is, _curentry.end);
956 loadData(is, _curentry.length);
957 loadData(is, _curentry.partition);
958 loadData(is, _curentry.numpartition);
959 loadData(is, _curentry.invert);
960 loadData(is, _curentry.selectamount);
961 loadData(is, _curentry.selecttotal);
962 loadData(is, _curentry.selectoffset);
963 loadData(is, _curentry.connectedgeo);
964 loadData(is, _curentry.useattrib);
965 loadData(is, _curentry.attrib);
966 loadData(is, _curentry.usecolgroup);
967 loadData(is, _curentry.colgroup);
968 loadData(is, _curentry.colgrouptype);
969 loadData(is, _curentry.colallowonbnd);
970 loadData(is, _curentry.usepartnum);
971 loadData(is, _curentry.keeponlypartnum);
972 loadData(is, _curentry.partnum);
985 if (!thissop)
return getNumrange().entries();
987 OP_Utils::evalOpParm(result, thissop,
"numrange", cookparms.
getCookTime(), 0);
991 {
return opinstNumrange_enable(cookparms, &_idx); }
995 if (!thissop)
return (myNumrange(_idx[0]).enable);
997 _parmidx[1-1] = _idx[1-1] + 1;
1000 OP_Utils::evalOpParmInst(result, thissop,
"enable#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1004 {
return opinstNumrange_groupname(cookparms, &_idx); }
1008 if (!thissop)
return (myNumrange(_idx[0]).groupname);
1010 _parmidx[1-1] = _idx[1-1] + 1;
1013 OP_Utils::evalOpParmInst(result, thissop,
"groupname#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1017 {
return opinstNumrange_group(cookparms, &_idx); }
1021 if (!thissop)
return (myNumrange(_idx[0]).group);
1023 _parmidx[1-1] = _idx[1-1] + 1;
1026 OP_Utils::evalOpParmInst(result, thissop,
"group#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1030 {
return opinstNumrange_grouptype(cookparms, &_idx); }
1034 if (!thissop)
return (myNumrange(_idx[0]).grouptype);
1036 _parmidx[1-1] = _idx[1-1] + 1;
1039 OP_Utils::evalOpParmInst(result, thissop,
"grouptype#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1043 {
return opinstNumrange_mergeop(cookparms, &_idx); }
1047 if (!thissop)
return (myNumrange(_idx[0]).mergeop);
1049 _parmidx[1-1] = _idx[1-1] + 1;
1052 OP_Utils::evalOpParmInst(result, thissop,
"mergeop#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1056 {
return opinstNumrange_method(cookparms, &_idx); }
1060 if (!thissop)
return (myNumrange(_idx[0]).method);
1062 _parmidx[1-1] = _idx[1-1] + 1;
1065 OP_Utils::evalOpParmInst(result, thissop,
"method#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1069 {
return opinstNumrange_start(cookparms, &_idx); }
1073 if (!thissop)
return (myNumrange(_idx[0]).
start);
1075 _parmidx[1-1] = _idx[1-1] + 1;
1078 OP_Utils::evalOpParmInst(result, thissop,
"start#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1082 {
return opinstNumrange_end(cookparms, &_idx); }
1086 if (!thissop)
return (myNumrange(_idx[0]).
end);
1088 _parmidx[1-1] = _idx[1-1] + 1;
1091 OP_Utils::evalOpParmInst(result, thissop,
"end#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1095 {
return opinstNumrange_length(cookparms, &_idx); }
1099 if (!thissop)
return (myNumrange(_idx[0]).
length);
1101 _parmidx[1-1] = _idx[1-1] + 1;
1104 OP_Utils::evalOpParmInst(result, thissop,
"length#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1108 {
return opinstNumrange_partition(cookparms, &_idx); }
1112 if (!thissop)
return (myNumrange(_idx[0]).
partition);
1114 _parmidx[1-1] = _idx[1-1] + 1;
1117 OP_Utils::evalOpParmInst(result, thissop,
"partition#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1121 {
return opinstNumrange_numpartition(cookparms, &_idx); }
1125 if (!thissop)
return (myNumrange(_idx[0]).numpartition);
1127 _parmidx[1-1] = _idx[1-1] + 1;
1130 OP_Utils::evalOpParmInst(result, thissop,
"numpartition#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1134 {
return opinstNumrange_invert(cookparms, &_idx); }
1138 if (!thissop)
return (myNumrange(_idx[0]).
invert);
1140 _parmidx[1-1] = _idx[1-1] + 1;
1143 OP_Utils::evalOpParmInst(result, thissop,
"invert#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1147 {
return opinstNumrange_selectamount(cookparms, &_idx); }
1151 if (!thissop)
return (myNumrange(_idx[0]).selectamount);
1153 _parmidx[1-1] = _idx[1-1] + 1;
1156 OP_Utils::evalOpParmInst(result, thissop,
"selectamount#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1160 {
return opinstNumrange_selecttotal(cookparms, &_idx); }
1164 if (!thissop)
return (myNumrange(_idx[0]).selecttotal);
1166 _parmidx[1-1] = _idx[1-1] + 1;
1169 OP_Utils::evalOpParmInst(result, thissop,
"selecttotal#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1173 {
return opinstNumrange_selectoffset(cookparms, &_idx); }
1177 if (!thissop)
return (myNumrange(_idx[0]).selectoffset);
1179 _parmidx[1-1] = _idx[1-1] + 1;
1182 OP_Utils::evalOpParmInst(result, thissop,
"selectoffset#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1186 {
return opinstNumrange_connectedgeo(cookparms, &_idx); }
1190 if (!thissop)
return (myNumrange(_idx[0]).connectedgeo);
1192 _parmidx[1-1] = _idx[1-1] + 1;
1195 OP_Utils::evalOpParmInst(result, thissop,
"connectedgeo#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1199 {
return opinstNumrange_useattrib(cookparms, &_idx); }
1203 if (!thissop)
return (myNumrange(_idx[0]).useattrib);
1205 _parmidx[1-1] = _idx[1-1] + 1;
1208 OP_Utils::evalOpParmInst(result, thissop,
"useattrib#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1212 {
return opinstNumrange_attrib(cookparms, &_idx); }
1216 if (!thissop)
return (myNumrange(_idx[0]).attrib);
1218 _parmidx[1-1] = _idx[1-1] + 1;
1221 OP_Utils::evalOpParmInst(result, thissop,
"attrib#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1225 {
return opinstNumrange_usecolgroup(cookparms, &_idx); }
1229 if (!thissop)
return (myNumrange(_idx[0]).usecolgroup);
1231 _parmidx[1-1] = _idx[1-1] + 1;
1234 OP_Utils::evalOpParmInst(result, thissop,
"usecolgroup#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1238 {
return opinstNumrange_colgroup(cookparms, &_idx); }
1242 if (!thissop)
return (myNumrange(_idx[0]).colgroup);
1244 _parmidx[1-1] = _idx[1-1] + 1;
1247 OP_Utils::evalOpParmInst(result, thissop,
"colgroup#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1251 {
return opinstNumrange_colgrouptype(cookparms, &_idx); }
1255 if (!thissop)
return (myNumrange(_idx[0]).colgrouptype);
1257 _parmidx[1-1] = _idx[1-1] + 1;
1260 OP_Utils::evalOpParmInst(result, thissop,
"colgrouptype#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1264 {
return opinstNumrange_colallowonbnd(cookparms, &_idx); }
1268 if (!thissop)
return (myNumrange(_idx[0]).colallowonbnd);
1270 _parmidx[1-1] = _idx[1-1] + 1;
1273 OP_Utils::evalOpParmInst(result, thissop,
"colallowonbnd#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1277 {
return opinstNumrange_usepartnum(cookparms, &_idx); }
1281 if (!thissop)
return (myNumrange(_idx[0]).usepartnum);
1283 _parmidx[1-1] = _idx[1-1] + 1;
1286 OP_Utils::evalOpParmInst(result, thissop,
"usepartnum#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1290 {
return opinstNumrange_keeponlypartnum(cookparms, &_idx); }
1294 if (!thissop)
return (myNumrange(_idx[0]).keeponlypartnum);
1296 _parmidx[1-1] = _idx[1-1] + 1;
1299 OP_Utils::evalOpParmInst(result, thissop,
"keeponlypartnum#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1303 {
return opinstNumrange_partnum(cookparms, &_idx); }
1307 if (!thissop)
return (myNumrange(_idx[0]).partnum);
1309 _parmidx[1-1] = _idx[1-1] + 1;
1312 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)
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 coerceValue(T &result, const S &src) const
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
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
OP_NodeParms & operator=(const OP_NodeParms &)=default
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