20 using namespace UT::Literal;
23 namespace SOP_GroupRangeEnums
91 groupname =
"group#"_sh;
105 connectedgeo =
false;
111 colallowonbnd =
true;
113 keeponlypartnum =
true;
121 if (groupname != src.
groupname)
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++)
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");
235 if (myNumrange != src.myNumrange)
return false;
255 graph->
evalOpParm(length, nodeidx,
"numrange", time, 0);
256 myNumrange.entries(length);
260 auto && _curentry = myNumrange(i);
262 myNumrange(i).enable =
true;
265 myNumrange(i).groupname =
"group#"_sh;
266 if (
true && ( (!(((_curentry.enable==0)))) ) )
267 graph->
evalOpParmInst(myNumrange(i).groupname, nodeidx,
"groupname#", &parmidx, time, 0);
268 myNumrange(i).group =
""_sh;
271 myNumrange(i).grouptype = 1;
273 graph->
evalOpParmInst(myNumrange(i).grouptype, nodeidx,
"grouptype#", &parmidx, time, 0);
274 myNumrange(i).mergeop = 0;
276 graph->
evalOpParmInst(myNumrange(i).mergeop, nodeidx,
"mergeop#", &parmidx, time, 0);
277 myNumrange(i).method = 1;
279 graph->
evalOpParmInst(myNumrange(i).method, nodeidx,
"method#", &parmidx, time, 0);
280 myNumrange(i).start = 0;
281 if (
true && ( (!(((_curentry.method==3)))) ) )
283 myNumrange(i).end = 0;
284 if (
true && ( (!(((_curentry.method!=0)&&(_curentry.method!=1)))) ) )
286 myNumrange(i).length = 1;
287 if (
true && ( (!(((_curentry.method!=2)))) ) )
288 graph->
evalOpParmInst(myNumrange(i).length, nodeidx,
"length#", &parmidx, time, 0);
289 myNumrange(i).partition = 0;
290 if (
true && ( (!(((_curentry.method!=3)))) ) )
292 myNumrange(i).numpartition = 1;
293 if (
true && ( (!(((_curentry.method!=3)))) ) )
294 graph->
evalOpParmInst(myNumrange(i).numpartition, nodeidx,
"numpartition#", &parmidx, time, 0);
295 myNumrange(i).invert =
false;
298 myNumrange(i).selectamount = 1;
300 graph->
evalOpParmInst(myNumrange(i).selectamount, nodeidx,
"selectamount#", &parmidx, time, 0);
301 myNumrange(i).selecttotal = 1;
303 graph->
evalOpParmInst(myNumrange(i).selecttotal, nodeidx,
"selecttotal#", &parmidx, time, 0);
304 myNumrange(i).selectoffset = 0;
306 graph->
evalOpParmInst(myNumrange(i).selectoffset, nodeidx,
"selectoffset#", &parmidx, time, 0);
307 myNumrange(i).connectedgeo =
false;
309 graph->
evalOpParmInst(myNumrange(i).connectedgeo, nodeidx,
"connectedgeo#", &parmidx, time, 0);
310 myNumrange(i).useattrib =
false;
312 graph->
evalOpParmInst(myNumrange(i).useattrib, nodeidx,
"useattrib#", &parmidx, time, 0);
313 myNumrange(i).attrib =
""_sh;
314 if (
true && ( (!(((_curentry.useattrib==0)))) ) )
315 graph->
evalOpParmInst(myNumrange(i).attrib, nodeidx,
"attrib#", &parmidx, time, 0);
316 myNumrange(i).usecolgroup =
false;
318 graph->
evalOpParmInst(myNumrange(i).usecolgroup, nodeidx,
"usecolgroup#", &parmidx, time, 0);
319 myNumrange(i).colgroup =
""_sh;
320 if (
true && ( (!(((_curentry.usecolgroup==0)))) ) )
321 graph->
evalOpParmInst(myNumrange(i).colgroup, nodeidx,
"colgroup#", &parmidx, time, 0);
322 myNumrange(i).colgrouptype = 0;
323 if (
true && ( (!(((_curentry.usecolgroup==0)))) ) )
324 graph->
evalOpParmInst(myNumrange(i).colgrouptype, nodeidx,
"colgrouptype#", &parmidx, time, 0);
325 myNumrange(i).colallowonbnd =
true;
326 if (
true && ( (!(((_curentry.usecolgroup==0)))) ) )
327 graph->
evalOpParmInst(myNumrange(i).colallowonbnd, nodeidx,
"colallowonbnd#", &parmidx, time, 0);
328 myNumrange(i).usepartnum =
false;
330 graph->
evalOpParmInst(myNumrange(i).usepartnum, nodeidx,
"usepartnum#", &parmidx, time, 0);
331 myNumrange(i).keeponlypartnum =
true;
332 if (
true && ( (!(((_curentry.usepartnum==0)))) ) )
333 graph->
evalOpParmInst(myNumrange(i).keeponlypartnum, nodeidx,
"keeponlypartnum#", &parmidx, time, 0);
334 myNumrange(i).partnum = 0;
335 if (
true && ( (!(((_curentry.usepartnum==0)))) ) )
336 graph->
evalOpParmInst(myNumrange(i).partnum, nodeidx,
"partnum#", &parmidx, time, 0);
357 template <
typename T>
364 if (idx.
size() != instance.
size()+1)
370 coerceValue(value, myNumrange.entries());
371 else if (instance[0] < myNumrange.entries())
373 auto && _data = myNumrange(instance[0]);
377 coerceValue(value, _data.enable);
380 coerceValue(value, _data.groupname);
383 coerceValue(value, _data.group);
386 coerceValue(value, _data.grouptype);
389 coerceValue(value, _data.mergeop);
392 coerceValue(value, _data.method);
395 coerceValue(value, _data.start);
398 coerceValue(value, _data.end);
401 coerceValue(value, _data.length);
404 coerceValue(value, _data.partition);
407 coerceValue(value, _data.numpartition);
410 coerceValue(value, _data.invert);
413 coerceValue(value, _data.selectamount);
416 coerceValue(value, _data.selecttotal);
419 coerceValue(value, _data.selectoffset);
422 coerceValue(value, _data.connectedgeo);
425 coerceValue(value, _data.useattrib);
428 coerceValue(value, _data.attrib);
431 coerceValue(value, _data.usecolgroup);
434 coerceValue(value, _data.colgroup);
437 coerceValue(value, _data.colgrouptype);
440 coerceValue(value, _data.colallowonbnd);
443 coerceValue(value, _data.usepartnum);
446 coerceValue(value, _data.keeponlypartnum);
449 coerceValue(value, _data.partnum);
460 { doGetParmValue(idx, instance, value); }
462 { doGetParmValue(idx, instance, value); }
464 { doGetParmValue(idx, instance, value); }
466 { doGetParmValue(idx, instance, value); }
468 { doGetParmValue(idx, instance, value); }
470 { doGetParmValue(idx, instance, value); }
472 { doGetParmValue(idx, instance, value); }
474 { doGetParmValue(idx, instance, value); }
476 { doGetParmValue(idx, instance, value); }
478 { doGetParmValue(idx, instance, value); }
480 { doGetParmValue(idx, instance, value); }
482 template <
typename T>
489 if (idx.
size() != instance.
size()+1)
497 coerceValue(newsize, value);
498 myNumrange.setSize(newsize);
502 myNumrange.setSizeIfNeeded(instance[0]+1);
503 auto && _data = myNumrange(instance[0]);
507 coerceValue(_data.enable, value);
510 coerceValue(_data.groupname, value);
513 coerceValue(_data.group, value);
516 coerceValue(_data.grouptype, value);
519 coerceValue(_data.mergeop, value);
522 coerceValue(_data.method, value);
525 coerceValue(_data.start, value);
528 coerceValue(_data.end, value);
531 coerceValue(_data.length, value);
534 coerceValue(_data.partition, value);
537 coerceValue(_data.numpartition, value);
540 coerceValue(_data.invert, value);
543 coerceValue(_data.selectamount, value);
546 coerceValue(_data.selecttotal, value);
549 coerceValue(_data.selectoffset, value);
552 coerceValue(_data.connectedgeo, value);
555 coerceValue(_data.useattrib, value);
558 coerceValue(_data.attrib, value);
561 coerceValue(_data.usecolgroup, value);
564 coerceValue(_data.colgroup, value);
567 coerceValue(_data.colgrouptype, value);
570 coerceValue(_data.colallowonbnd, value);
573 coerceValue(_data.usepartnum, value);
576 coerceValue(_data.keeponlypartnum, value);
579 coerceValue(_data.partnum, value);
590 { doSetParmValue(idx, instance, value); }
592 { doSetParmValue(idx, instance, value); }
594 { doSetParmValue(idx, instance, value); }
596 { doSetParmValue(idx, instance, value); }
598 { doSetParmValue(idx, instance, value); }
600 { doSetParmValue(idx, instance, value); }
602 { doSetParmValue(idx, instance, value); }
604 { doSetParmValue(idx, instance, value); }
606 { doSetParmValue(idx, instance, value); }
608 { doSetParmValue(idx, instance, value); }
610 { doSetParmValue(idx, instance, value); }
628 if (fieldnum.
size() < 1)
633 if (fieldnum.
size() == 1)
658 return "numpartition#";
662 return "selectamount#";
664 return "selecttotal#";
666 return "selectoffset#";
668 return "connectedgeo#";
674 return "usecolgroup#";
678 return "colgrouptype#";
680 return "colallowonbnd#";
682 return "usepartnum#";
684 return "keeponlypartnum#";
697 if (fieldnum.
size() < 1)
698 return PARM_UNSUPPORTED;
702 if (fieldnum.
size() == 1)
703 return PARM_MULTIPARM;
758 return PARM_UNSUPPORTED;
761 return PARM_UNSUPPORTED;
797 loadData(is, rampdata);
815 int typelen = colon - data.
buffer();
829 {
int64 iv =
v; UTwrite(os, &iv); }
831 { UTwrite<fpreal64>(os, &
v); }
833 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
835 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
836 UTwrite<fpreal64>(os, &v.
z()); }
838 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
839 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
851 if (s) s->save(ostr);
853 saveData(os, result);
860 ostr << s->getDataTypeToken();
865 saveData(os, result);
869 void save(std::ostream &os)
const
875 UTwrite(os, &length);
878 saveData(os, myNumrange(i).
enable);
879 saveData(os, myNumrange(i).groupname);
880 saveData(os, myNumrange(i).
group);
881 saveData(os, myNumrange(i).grouptype);
882 saveData(os, myNumrange(i).mergeop);
883 saveData(os, myNumrange(i).method);
884 saveData(os, myNumrange(i).
start);
885 saveData(os, myNumrange(i).
end);
886 saveData(os, myNumrange(i).length);
888 saveData(os, myNumrange(i).numpartition);
889 saveData(os, myNumrange(i).
invert);
890 saveData(os, myNumrange(i).selectamount);
891 saveData(os, myNumrange(i).selecttotal);
892 saveData(os, myNumrange(i).selectoffset);
893 saveData(os, myNumrange(i).connectedgeo);
894 saveData(os, myNumrange(i).useattrib);
895 saveData(os, myNumrange(i).attrib);
896 saveData(os, myNumrange(i).usecolgroup);
897 saveData(os, myNumrange(i).colgroup);
898 saveData(os, myNumrange(i).colgrouptype);
899 saveData(os, myNumrange(i).colallowonbnd);
900 saveData(os, myNumrange(i).usepartnum);
901 saveData(os, myNumrange(i).keeponlypartnum);
902 saveData(os, myNumrange(i).partnum);
921 myNumrange.entries(length);
924 loadData(is, myNumrange(i).
enable);
925 loadData(is, myNumrange(i).groupname);
926 loadData(is, myNumrange(i).
group);
927 loadData(is, myNumrange(i).grouptype);
928 loadData(is, myNumrange(i).mergeop);
929 loadData(is, myNumrange(i).method);
930 loadData(is, myNumrange(i).
start);
931 loadData(is, myNumrange(i).
end);
932 loadData(is, myNumrange(i).length);
934 loadData(is, myNumrange(i).numpartition);
935 loadData(is, myNumrange(i).
invert);
936 loadData(is, myNumrange(i).selectamount);
937 loadData(is, myNumrange(i).selecttotal);
938 loadData(is, myNumrange(i).selectoffset);
939 loadData(is, myNumrange(i).connectedgeo);
940 loadData(is, myNumrange(i).useattrib);
941 loadData(is, myNumrange(i).attrib);
942 loadData(is, myNumrange(i).usecolgroup);
943 loadData(is, myNumrange(i).colgroup);
944 loadData(is, myNumrange(i).colgrouptype);
945 loadData(is, myNumrange(i).colallowonbnd);
946 loadData(is, myNumrange(i).usepartnum);
947 loadData(is, myNumrange(i).keeponlypartnum);
948 loadData(is, myNumrange(i).partnum);
961 if (!thissop)
return getNumrange().entries();
963 OP_Utils::evalOpParm(result, thissop,
"numrange", cookparms.
getCookTime(), 0);
969 if (!thissop)
return (myNumrange(_idx).
enable);
970 int _parmidx = _idx + 1;
972 OP_Utils::evalOpParmInst(result, thissop,
"enable#", &_parmidx, cookparms.
getCookTime(), 0);
978 if (!thissop)
return (myNumrange(_idx).groupname);
979 int _parmidx = _idx + 1;
981 OP_Utils::evalOpParmInst(result, thissop,
"groupname#", &_parmidx, cookparms.
getCookTime(), 0);
987 if (!thissop)
return (myNumrange(_idx).
group);
988 int _parmidx = _idx + 1;
990 OP_Utils::evalOpParmInst(result, thissop,
"group#", &_parmidx, cookparms.
getCookTime(), 0);
996 if (!thissop)
return (myNumrange(_idx).grouptype);
997 int _parmidx = _idx + 1;
999 OP_Utils::evalOpParmInst(result, thissop,
"grouptype#", &_parmidx, cookparms.
getCookTime(), 0);
1005 if (!thissop)
return (myNumrange(_idx).mergeop);
1006 int _parmidx = _idx + 1;
1008 OP_Utils::evalOpParmInst(result, thissop,
"mergeop#", &_parmidx, cookparms.
getCookTime(), 0);
1014 if (!thissop)
return (myNumrange(_idx).method);
1015 int _parmidx = _idx + 1;
1017 OP_Utils::evalOpParmInst(result, thissop,
"method#", &_parmidx, cookparms.
getCookTime(), 0);
1023 if (!thissop)
return (myNumrange(_idx).
start);
1024 int _parmidx = _idx + 1;
1026 OP_Utils::evalOpParmInst(result, thissop,
"start#", &_parmidx, cookparms.
getCookTime(), 0);
1032 if (!thissop)
return (myNumrange(_idx).
end);
1033 int _parmidx = _idx + 1;
1035 OP_Utils::evalOpParmInst(result, thissop,
"end#", &_parmidx, cookparms.
getCookTime(), 0);
1041 if (!thissop)
return (myNumrange(_idx).
length);
1042 int _parmidx = _idx + 1;
1044 OP_Utils::evalOpParmInst(result, thissop,
"length#", &_parmidx, cookparms.
getCookTime(), 0);
1050 if (!thissop)
return (myNumrange(_idx).
partition);
1051 int _parmidx = _idx + 1;
1053 OP_Utils::evalOpParmInst(result, thissop,
"partition#", &_parmidx, cookparms.
getCookTime(), 0);
1059 if (!thissop)
return (myNumrange(_idx).numpartition);
1060 int _parmidx = _idx + 1;
1062 OP_Utils::evalOpParmInst(result, thissop,
"numpartition#", &_parmidx, cookparms.
getCookTime(), 0);
1068 if (!thissop)
return (myNumrange(_idx).
invert);
1069 int _parmidx = _idx + 1;
1071 OP_Utils::evalOpParmInst(result, thissop,
"invert#", &_parmidx, cookparms.
getCookTime(), 0);
1077 if (!thissop)
return (myNumrange(_idx).selectamount);
1078 int _parmidx = _idx + 1;
1080 OP_Utils::evalOpParmInst(result, thissop,
"selectamount#", &_parmidx, cookparms.
getCookTime(), 0);
1086 if (!thissop)
return (myNumrange(_idx).selecttotal);
1087 int _parmidx = _idx + 1;
1089 OP_Utils::evalOpParmInst(result, thissop,
"selecttotal#", &_parmidx, cookparms.
getCookTime(), 0);
1095 if (!thissop)
return (myNumrange(_idx).selectoffset);
1096 int _parmidx = _idx + 1;
1098 OP_Utils::evalOpParmInst(result, thissop,
"selectoffset#", &_parmidx, cookparms.
getCookTime(), 0);
1104 if (!thissop)
return (myNumrange(_idx).connectedgeo);
1105 int _parmidx = _idx + 1;
1107 OP_Utils::evalOpParmInst(result, thissop,
"connectedgeo#", &_parmidx, cookparms.
getCookTime(), 0);
1113 if (!thissop)
return (myNumrange(_idx).useattrib);
1114 int _parmidx = _idx + 1;
1116 OP_Utils::evalOpParmInst(result, thissop,
"useattrib#", &_parmidx, cookparms.
getCookTime(), 0);
1122 if (!thissop)
return (myNumrange(_idx).attrib);
1123 int _parmidx = _idx + 1;
1125 OP_Utils::evalOpParmInst(result, thissop,
"attrib#", &_parmidx, cookparms.
getCookTime(), 0);
1131 if (!thissop)
return (myNumrange(_idx).usecolgroup);
1132 int _parmidx = _idx + 1;
1134 OP_Utils::evalOpParmInst(result, thissop,
"usecolgroup#", &_parmidx, cookparms.
getCookTime(), 0);
1140 if (!thissop)
return (myNumrange(_idx).colgroup);
1141 int _parmidx = _idx + 1;
1143 OP_Utils::evalOpParmInst(result, thissop,
"colgroup#", &_parmidx, cookparms.
getCookTime(), 0);
1149 if (!thissop)
return (myNumrange(_idx).colgrouptype);
1150 int _parmidx = _idx + 1;
1152 OP_Utils::evalOpParmInst(result, thissop,
"colgrouptype#", &_parmidx, cookparms.
getCookTime(), 0);
1158 if (!thissop)
return (myNumrange(_idx).colallowonbnd);
1159 int _parmidx = _idx + 1;
1161 OP_Utils::evalOpParmInst(result, thissop,
"colallowonbnd#", &_parmidx, cookparms.
getCookTime(), 0);
1167 if (!thissop)
return (myNumrange(_idx).usepartnum);
1168 int _parmidx = _idx + 1;
1170 OP_Utils::evalOpParmInst(result, thissop,
"usepartnum#", &_parmidx, cookparms.
getCookTime(), 0);
1176 if (!thissop)
return (myNumrange(_idx).keeponlypartnum);
1177 int _parmidx = _idx + 1;
1179 OP_Utils::evalOpParmInst(result, thissop,
"keeponlypartnum#", &_parmidx, cookparms.
getCookTime(), 0);
1185 if (!thissop)
return (myNumrange(_idx).partnum);
1186 int _parmidx = _idx + 1;
1188 OP_Utils::evalOpParmInst(result, thissop,
"partnum#", &_parmidx, cookparms.
getCookTime(), 0);
bool opNumrange_useattrib(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
static void loadData(UT_IStream &is, UT_Vector3I &v)
static void saveData(std::ostream &os, bool v)
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)
virtual void evalOpParmInst(int64 &v, NodeIdx node, const char *parmname, int *inst, fpreal time, DEP_MicroNode *depnode) const =0
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
UT_StringHolder createString(const UT_Array< Numrange > &list) const
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
GLuint const GLfloat * val
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
bool operator==(const SOP_GroupRangeParms &src) const
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
bool opNumrange_usecolgroup(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
SYS_FORCE_INLINE const char * buffer() const
const SOP_GraphProxy * graph() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
An output stream object that owns its own string buffer storage.
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.
bool opNumrange_invert(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
int64 opNumrange_selectoffset(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
void save(std::ostream &os) const
void loadFromOpSubclass(const LoadParms &loadparms) override
bool opNumrange_keeponlypartnum(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
~SOP_GroupRangeParms() override
UT_StringHolder opNumrange_group(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
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
const char * getNestParmName(TempIndex fieldnum) const override
int64 opNumrange_partnum(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
static void loadData(UT_IStream &is, UT_Vector4D &v)
int64 opNumrange_selecttotal(const SOP_NodeVerb::CookParms &cookparms, exint _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
int64 opNumrange_end(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
GLint GLenum GLsizei GLint GLsizei const void * data
static void loadData(UT_IStream &is, UT_Matrix4D &v)
static void saveData(std::ostream &os, UT_Matrix3D v)
bool opNumrange_enable(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
int64 opNumrange_method(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
exint getNestNumParms(TempIndex idx) const override
exint read(bool *array, exint sz=1)
static void saveData(std::ostream &os, UT_Matrix4D v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
bool opNumrange_connectedgeo(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
GLuint GLsizei GLsizei * length
int64 opNumrange_mergeop(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
int64 opNumrange_partition(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
static void saveData(std::ostream &os, UT_Matrix2D v)
const UT_Array< Numrange > & getNumrange() const
int64 opNumrange_grouptype(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
UT_StringHolder groupname
int64 opNumrange_numpartition(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
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
DEP_MicroNode * depnode() const
exint entries() const
Alias of size(). size() is preferred.
void buildFromOp(const SOP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
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
static void loadData(UT_IStream &is, UT_Matrix3D &v)
bool opNumrange_usepartnum(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
int64 opNumrange_selectamount(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
void copyFrom(const SOP_NodeParms *src) override
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
ParmType getNestParmType(TempIndex fieldnum) const override
Utility class for containing a color ramp.
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
SYS_FORCE_INLINE void append(char character)
GLdouble GLdouble GLdouble r
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
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)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
UT_StringHolder opNumrange_groupname(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
fpreal getCookTime() const
int64 opNumrange_colgrouptype(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
const char * findChar(int c) const
UT_StringHolder opNumrange_colgroup(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
bool operator==(const Numrange &src) const
UT_StringHolder opNumrange_attrib(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
exint opNumrange(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector4I &v)
GLenum GLuint GLsizei const GLchar * buf
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
GLsizei const GLfloat * value
bool load(UT_IStream &is)
const OP_Context & context() const
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
SYS_FORCE_INLINE bool isstring() const
int64 opNumrange_length(const SOP_NodeVerb::CookParms &cookparms, exint _idx) 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
bool opNumrange_colallowonbnd(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
int64 opNumrange_start(const SOP_NodeVerb::CookParms &cookparms, exint _idx) const
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
static void loadData(UT_IStream &is, UT_Vector3D &v)