23 namespace SOP_AttribCreate_2_0Enums
37 using namespace UT::Literal;
59 using namespace UT::Literal;
80 using namespace UT::Literal;
106 using namespace UT::Literal;
107 switch (enum_value) {
137 using namespace UT::Literal;
138 switch (enum_value) {
164 using namespace UT::Literal;
165 switch (enum_value) {
205 name =
"attribute#"_UTsh;
207 createvarmap =
false;
225 if (enable != src.
enable)
return false;
227 if (existing != src.
existing)
return false;
229 if (varname != src.
varname)
return false;
230 if (_class != src.
_class)
return false;
231 if (savetoinfo != src.
savetoinfo)
return false;
233 if (typeinfo != src.
typeinfo)
return false;
236 if (defaultv != src.
defaultv)
return false;
238 if (uselocal != src.
uselocal)
return false;
239 if (valuev != src.
valuev)
return false;
240 if (
string != src.
string)
return false;
256 for (
int i = 0; i < list.
entries(); i++)
262 buf.
appendSprintf(
"%s", (list(i).enable) ?
"true" :
"false");
268 buf.
appendSprintf(
"%s", (list(i).createvarmap) ?
"true" :
"false");
274 buf.
appendSprintf(
"%s", (list(i).savetoinfo) ?
"true" :
"false");
284 buf.
appendSprintf(
"(%f, %f, %f, %f)", list(i).defaultv.x(), list(i).defaultv.y(), list(i).defaultv.z(), list(i).defaultv.w());
286 buf.
appendSprintf(
"%s", (list(i).writevalues) ?
"true" :
"false");
288 buf.
appendSprintf(
"%s", (list(i).uselocal) ?
"true" :
"false");
290 buf.
appendSprintf(
"(%f, %f, %f, %f)", list(i).valuev.x(), list(i).valuev.y(), list(i).valuev.z(), list(i).valuev.w());
306 myEncodenames =
false;
307 myNumattr.setSize(1);
320 if (myGroup != src.myGroup)
return false;
321 if (myGrouptype != src.myGrouptype)
return false;
322 if (myEncodenames != src.myEncodenames)
return false;
323 if (myNumattr != src.myNumattr)
return false;
344 graph->
evalOpParm(myGroup, nodeidx,
"group", time, 0);
347 graph->
evalOpParm(myGrouptype, nodeidx,
"grouptype", time, 0);
348 myEncodenames =
false;
350 graph->
evalOpParm(myEncodenames, nodeidx,
"encodenames", time, 0);
354 graph->
evalOpParm(length, nodeidx,
"numattr", time, 0);
355 if (length < 0) length = 0;
356 myNumattr.setSize(length);
363 auto && _curentry = myNumattr(i);
365 _curentry.enable =
true;
367 graph->
evalOpParmInst(_curentry.enable, nodeidx,
"enable#", parmidx, offsets, time, 0, 2-1);
368 _curentry.name =
"attribute#"_UTsh;
369 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
370 graph->
evalOpParmInst(_curentry.name, nodeidx,
"name#", parmidx, offsets, time, 0, 2-1);
371 _curentry.existing = 3;
372 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
373 graph->
evalOpParmInst(_curentry.existing, nodeidx,
"existing#", parmidx, offsets, time, 0, 2-1);
374 _curentry.createvarmap =
false;
375 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
376 graph->
evalOpParmInst(_curentry.createvarmap, nodeidx,
"createvarmap#", parmidx, offsets, time, 0, 2-1);
377 _curentry.varname =
""_UTsh;
378 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.createvarmap==0)))) ) )
379 graph->
evalOpParmInst(_curentry.varname, nodeidx,
"varname#", parmidx, offsets, time, 0, 2-1);
380 _curentry._class = 2;
381 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
382 graph->
evalOpParmInst(_curentry._class, nodeidx,
"class#", parmidx, offsets, time, 0, 2-1);
383 _curentry.savetoinfo =
false;
384 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry._class!=0)))) ) )
385 graph->
evalOpParmInst(_curentry.savetoinfo, nodeidx,
"savetoinfo#", parmidx, offsets, time, 0, 2-1);
387 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
388 graph->
evalOpParmInst(_curentry.type, nodeidx,
"type#", parmidx, offsets, time, 0, 2-1);
389 _curentry.typeinfo = 0;
390 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.type!=0)&&(_curentry.type!=4)))) ) )
391 graph->
evalOpParmInst(_curentry.typeinfo, nodeidx,
"typeinfo#", parmidx, offsets, time, 0, 2-1);
392 _curentry.precision = 4;
393 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.type==3))||((_curentry.type==6))||((_curentry.type==7))||((_curentry.type==8)))) ) )
394 graph->
evalOpParmInst(_curentry.precision, nodeidx,
"precision#", parmidx, offsets, time, 0, 2-1);
396 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.type==2))||((_curentry.type==3)))) ) )
397 graph->
evalOpParmInst(_curentry.size, nodeidx,
"size#", parmidx, offsets, time, 0, 2-1);
399 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.type==3))||((_curentry.type==4))||((_curentry.type==5))||((_curentry.type==6))||((_curentry.type==7))||((_curentry.type==8)))) ) )
400 graph->
evalOpParmInst(_curentry.defaultv, nodeidx,
"default#v", parmidx, offsets, time, 0, 2-1);
401 _curentry.writevalues =
true;
402 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.type==4))||((_curentry.type==5))||((_curentry.type==6))||((_curentry.type==7))||((_curentry.type==8)))) ) )
403 graph->
evalOpParmInst(_curentry.writevalues, nodeidx,
"writevalues#", parmidx, offsets, time, 0, 2-1);
404 _curentry.uselocal =
true;
405 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.writevalues==0))||((_curentry.type==4))||((_curentry.type==5))||((_curentry.type==6))||((_curentry.type==7))||((_curentry.type==8)))) ) )
406 graph->
evalOpParmInst(_curentry.uselocal, nodeidx,
"uselocal#", parmidx, offsets, time, 0, 2-1);
408 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.writevalues==0))||((_curentry.type!=0)&&(_curentry.type!=1)&&(_curentry.type!=2)))) ) )
409 graph->
evalOpParmInst(_curentry.valuev, nodeidx,
"value#v", parmidx, offsets, time, 0, 2-1);
410 _curentry.string =
""_UTsh;
411 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.writevalues==0))||((_curentry.type!=3)))) ) )
412 graph->
evalOpParmInst(_curentry.string, nodeidx,
"string#", parmidx, offsets, time, 0, 2-1);
433 template <
typename T>
440 if (idx.
size() != instance.
size()+1)
445 coerceValue(value, myGroup);
448 coerceValue(value, myGrouptype);
451 coerceValue(value, myEncodenames);
455 coerceValue(value, myNumattr.entries());
456 else if (instance[0] < myNumattr.entries())
458 auto && _data = myNumattr(instance[0]);
462 coerceValue(value, _data.enable);
465 coerceValue(value, _data.name);
468 coerceValue(value, _data.existing);
471 coerceValue(value, _data.createvarmap);
474 coerceValue(value, _data.varname);
477 coerceValue(value, _data._class);
480 coerceValue(value, _data.savetoinfo);
483 coerceValue(value, _data.type);
486 coerceValue(value, _data.typeinfo);
489 coerceValue(value, _data.precision);
492 coerceValue(value, _data.size);
495 coerceValue(value, _data.defaultv);
498 coerceValue(value, _data.writevalues);
501 coerceValue(value, _data.uselocal);
504 coerceValue(value, _data.valuev);
507 coerceValue(value, _data.string);
527 { doGetParmValue(idx, instance, value); }
529 { doGetParmValue(idx, instance, value); }
531 { doGetParmValue(idx, instance, value); }
533 { doGetParmValue(idx, instance, value); }
535 { doGetParmValue(idx, instance, value); }
537 { doGetParmValue(idx, instance, value); }
539 { doGetParmValue(idx, instance, value); }
541 { doGetParmValue(idx, instance, value); }
543 { doGetParmValue(idx, instance, value); }
545 { doGetParmValue(idx, instance, value); }
547 { doGetParmValue(idx, instance, value); }
549 template <
typename T>
556 if (idx.
size() != instance.
size()+1)
561 coerceValue(myGroup, ( ( value ) ));
564 coerceValue(myGrouptype, clampMinValue(0, clampMaxValue(4, value ) ));
567 coerceValue(myEncodenames, ( ( value ) ));
573 coerceValue(newsize, value);
574 if (newsize < 0) newsize = 0;
575 myNumattr.setSize(newsize);
581 myNumattr.setSizeIfNeeded(instance[0]+1);
582 auto && _data = myNumattr(instance[0]);
586 coerceValue(_data.enable, value);
589 coerceValue(_data.name, value);
592 coerceValue(_data.existing, value);
595 coerceValue(_data.createvarmap, value);
598 coerceValue(_data.varname, value);
601 coerceValue(_data._class, value);
604 coerceValue(_data.savetoinfo, value);
607 coerceValue(_data.type, value);
610 coerceValue(_data.typeinfo, value);
613 coerceValue(_data.precision, value);
616 coerceValue(_data.size, value);
619 coerceValue(_data.defaultv, value);
622 coerceValue(_data.writevalues, value);
625 coerceValue(_data.uselocal, value);
628 coerceValue(_data.valuev, value);
631 coerceValue(_data.string, value);
642 { doSetParmValue(idx, instance, value); }
644 { doSetParmValue(idx, instance, value); }
646 { doSetParmValue(idx, instance, value); }
648 { doSetParmValue(idx, instance, value); }
650 { doSetParmValue(idx, instance, value); }
652 { doSetParmValue(idx, instance, value); }
654 { doSetParmValue(idx, instance, value); }
656 { doSetParmValue(idx, instance, value); }
658 { doSetParmValue(idx, instance, value); }
660 { doSetParmValue(idx, instance, value); }
662 { doSetParmValue(idx, instance, value); }
680 if (fieldnum.
size() < 1)
689 return "encodenames";
691 if (fieldnum.
size() == 1)
702 return "createvarmap#";
708 return "savetoinfo#";
720 return "writevalues#";
737 if (fieldnum.
size() < 1)
738 return PARM_UNSUPPORTED;
748 if (fieldnum.
size() == 1)
749 return PARM_MULTIPARM;
786 return PARM_UNSUPPORTED;
789 return PARM_UNSUPPORTED;
825 loadData(is, rampdata);
843 int typelen = colon - data.
buffer();
857 {
int64 iv =
v; UTwrite(os, &iv); }
859 { UTwrite<fpreal64>(os, &
v); }
861 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
863 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
864 UTwrite<fpreal64>(os, &v.
z()); }
866 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
867 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
879 if (s) s->save(ostr);
881 saveData(os, result);
888 ostr << s->getDataTypeToken();
893 saveData(os, result);
897 void save(std::ostream &os)
const
901 saveData(os, myGroup);
902 saveData(os, myGrouptype);
903 saveData(os, myEncodenames);
906 UTwrite(os, &length);
909 auto && _curentry = myNumattr(i);
911 saveData(os, _curentry.enable);
912 saveData(os, _curentry.name);
913 saveData(os, _curentry.existing);
914 saveData(os, _curentry.createvarmap);
915 saveData(os, _curentry.varname);
916 saveData(os, _curentry._class);
917 saveData(os, _curentry.savetoinfo);
918 saveData(os, _curentry.type);
919 saveData(os, _curentry.typeinfo);
920 saveData(os, _curentry.precision);
921 saveData(os, _curentry.size);
922 saveData(os, _curentry.defaultv);
923 saveData(os, _curentry.writevalues);
924 saveData(os, _curentry.uselocal);
925 saveData(os, _curentry.valuev);
926 saveData(os, _curentry.string);
942 loadData(is, myGroup);
943 loadData(is, myGrouptype);
944 loadData(is, myEncodenames);
948 myNumattr.setSize(length);
951 auto && _curentry = myNumattr(i);
953 loadData(is, _curentry.enable);
954 loadData(is, _curentry.name);
955 loadData(is, _curentry.existing);
956 loadData(is, _curentry.createvarmap);
957 loadData(is, _curentry.varname);
958 loadData(is, _curentry._class);
959 loadData(is, _curentry.savetoinfo);
960 loadData(is, _curentry.type);
961 loadData(is, _curentry.typeinfo);
962 loadData(is, _curentry.precision);
963 loadData(is, _curentry.size);
964 loadData(is, _curentry.defaultv);
965 loadData(is, _curentry.writevalues);
966 loadData(is, _curentry.uselocal);
967 loadData(is, _curentry.valuev);
968 loadData(is, _curentry.string);
981 if (!thissop)
return getGroup();
983 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
991 if (!thissop)
return getGrouptype();
993 OP_Utils::evalOpParm(result, thissop,
"grouptype", cookparms.
getCookTime(), 0);
1001 if (!thissop)
return getEncodenames();
1003 OP_Utils::evalOpParm(result, thissop,
"encodenames", cookparms.
getCookTime(), 0);
1011 if (!thissop)
return getNumattr().entries();
1013 OP_Utils::evalOpParm(result, thissop,
"numattr", cookparms.
getCookTime(), 0);
1017 {
return opinstNumattr_enable(cookparms, &_idx); }
1021 if (!thissop)
return (myNumattr(_idx[0]).enable);
1023 _parmidx[1-1] = _idx[1-1] + 1;
1026 OP_Utils::evalOpParmInst(result, thissop,
"enable#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1030 {
return opinstNumattr_name(cookparms, &_idx); }
1034 if (!thissop)
return (myNumattr(_idx[0]).
name);
1036 _parmidx[1-1] = _idx[1-1] + 1;
1039 OP_Utils::evalOpParmInst(result, thissop,
"name#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1043 {
return opinstNumattr_existing(cookparms, &_idx); }
1047 if (!thissop)
return (myNumattr(_idx[0]).existing);
1049 _parmidx[1-1] = _idx[1-1] + 1;
1052 OP_Utils::evalOpParmInst(result, thissop,
"existing#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1056 {
return opinstNumattr_createvarmap(cookparms, &_idx); }
1060 if (!thissop)
return (myNumattr(_idx[0]).createvarmap);
1062 _parmidx[1-1] = _idx[1-1] + 1;
1065 OP_Utils::evalOpParmInst(result, thissop,
"createvarmap#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1069 {
return opinstNumattr_varname(cookparms, &_idx); }
1073 if (!thissop)
return (myNumattr(_idx[0]).varname);
1075 _parmidx[1-1] = _idx[1-1] + 1;
1078 OP_Utils::evalOpParmInst(result, thissop,
"varname#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1082 {
return opinstNumattr__class(cookparms, &_idx); }
1086 if (!thissop)
return (myNumattr(_idx[0])._class);
1088 _parmidx[1-1] = _idx[1-1] + 1;
1091 OP_Utils::evalOpParmInst(result, thissop,
"class#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1095 {
return opinstNumattr_savetoinfo(cookparms, &_idx); }
1099 if (!thissop)
return (myNumattr(_idx[0]).savetoinfo);
1101 _parmidx[1-1] = _idx[1-1] + 1;
1104 OP_Utils::evalOpParmInst(result, thissop,
"savetoinfo#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1108 {
return opinstNumattr_type(cookparms, &_idx); }
1112 if (!thissop)
return (myNumattr(_idx[0]).
type);
1114 _parmidx[1-1] = _idx[1-1] + 1;
1117 OP_Utils::evalOpParmInst(result, thissop,
"type#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1121 {
return opinstNumattr_typeinfo(cookparms, &_idx); }
1125 if (!thissop)
return (myNumattr(_idx[0]).typeinfo);
1127 _parmidx[1-1] = _idx[1-1] + 1;
1130 OP_Utils::evalOpParmInst(result, thissop,
"typeinfo#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1134 {
return opinstNumattr_precision(cookparms, &_idx); }
1138 if (!thissop)
return (myNumattr(_idx[0]).
precision);
1140 _parmidx[1-1] = _idx[1-1] + 1;
1143 OP_Utils::evalOpParmInst(result, thissop,
"precision#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1147 {
return opinstNumattr_size(cookparms, &_idx); }
1151 if (!thissop)
return (myNumattr(_idx[0]).
size);
1153 _parmidx[1-1] = _idx[1-1] + 1;
1156 OP_Utils::evalOpParmInst(result, thissop,
"size#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1160 {
return opinstNumattr_defaultv(cookparms, &_idx); }
1164 if (!thissop)
return (myNumattr(_idx[0]).defaultv);
1166 _parmidx[1-1] = _idx[1-1] + 1;
1169 OP_Utils::evalOpParmInst(result, thissop,
"default#v", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1173 {
return opinstNumattr_writevalues(cookparms, &_idx); }
1177 if (!thissop)
return (myNumattr(_idx[0]).writevalues);
1179 _parmidx[1-1] = _idx[1-1] + 1;
1182 OP_Utils::evalOpParmInst(result, thissop,
"writevalues#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1186 {
return opinstNumattr_uselocal(cookparms, &_idx); }
1190 if (!thissop)
return (myNumattr(_idx[0]).uselocal);
1192 _parmidx[1-1] = _idx[1-1] + 1;
1195 OP_Utils::evalOpParmInst(result, thissop,
"uselocal#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1199 {
return opinstNumattr_valuev(cookparms, &_idx); }
1203 if (!thissop)
return (myNumattr(_idx[0]).valuev);
1205 _parmidx[1-1] = _idx[1-1] + 1;
1208 OP_Utils::evalOpParmInst(result, thissop,
"value#v", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1212 {
return opinstNumattr_string(cookparms, &_idx); }
1216 if (!thissop)
return (myNumattr(_idx[0]).
string);
1218 _parmidx[1-1] = _idx[1-1] + 1;
1221 OP_Utils::evalOpParmInst(result, thissop,
"string#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
static void loadData(UT_IStream &is, UT_Vector4D &v)
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
bool load(UT_IStream &is)
GLenum GLuint GLenum GLsizei const GLchar * buf
static void loadData(UT_IStream &is, UT_Matrix4D &v)
static void saveData(std::ostream &os, UT_StringHolder s)
bool opNumattr_savetoinfo(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
SOP_Node * getNode() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
void setNumattr(const UT_Array< Numattr > &val)
exint bread(int32 *buffer, exint asize=1)
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
static void saveData(std::ostream &os, UT_Vector4D v)
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
exint getNestNumParms(TempIndex idx) const override
int64 opinstNumattr_typeinfo(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
UT_StringHolder opNumattr_varname(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void loadData(UT_IStream &is, fpreal64 &v)
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
const OP_Context & context() const
void setGrouptype(Grouptype val)
bool opNumattr_uselocal(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
int64 opNumattr_precision(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
constexpr SYS_FORCE_INLINE T & z() noexcept
UT_StringHolder opinstNumattr_name(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
SYS_FORCE_INLINE const char * buffer() const
const UT_StringHolder & getGroup() const
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
bool operator==(const Numattr &src) const
GLuint GLsizei GLsizei * length
An output stream object that owns its own string buffer storage.
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
bool operator==(const SOP_AttribCreate_2_0Parms &src) const
bool operator!=(const SOP_AttribCreate_2_0Parms &src) const
bool opinstNumattr_writevalues(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
int64 opNumattr__class(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
**But if you need a result
bool opNumattr_createvarmap(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void loadFromOpSubclass(const LoadParms &loadparms) override
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, UT_Matrix2D &v)
const char * getNestParmName(TempIndex fieldnum) const override
static void saveData(std::ostream &os, UT_Vector3D v)
constexpr SYS_FORCE_INLINE T & x() noexcept
SOP_AttribCreate_2_0Parms()
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
static void loadData(UT_IStream &is, UT_Vector4I &v)
static void loadData(UT_IStream &is, UT_Vector3I &v)
GLuint GLsizei const GLuint const GLintptr * offsets
bool opinstNumattr_savetoinfo(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool isParmColorRamp(exint idx) const override
constexpr SYS_FORCE_INLINE T & x() noexcept
static void saveData(std::ostream &os, bool v)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
int64 opNumattr_size(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
UT_StringHolder opNumattr_string(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
static void saveData(std::ostream &os, UT_Vector2D v)
static void loadData(UT_IStream &is, UT_Vector3D &v)
int64 opinstNumattr_size(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
ParmType getNestParmType(TempIndex fieldnum) const override
void setGroup(const UT_StringHolder &val)
static void saveData(std::ostream &os, PRM_DataItemHandle s)
UT_StringHolder opinstNumattr_string(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
exint read(bool *array, exint sz=1)
const OP_GraphProxy * graph() const
bool opinstNumattr_createvarmap(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool getEncodenames() 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
exint opNumattr(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Matrix3D &v)
bool opinstNumattr_enable(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
GLuint const GLchar * name
Grouptype getGrouptype() const
static void saveData(std::ostream &os, int64 v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
static void saveData(std::ostream &os, UT_Matrix2D v)
UT_Vector4D opNumattr_valuev(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
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
bool opinstNumattr_uselocal(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
void save(std::ostream &os) const
SYS_FORCE_INLINE void strcat(const char *src)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
void saveBinary(std::ostream &os) const
Save string to binary stream.
static void saveData(std::ostream &os, UT_Matrix4D v)
GT_API const UT_StringHolder version
GLenum GLint GLint * precision
exint entries() const
Alias of size(). size() is preferred.
int64 opinstNumattr__class(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool opNumattr_writevalues(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
UT_StringHolder createString(const UT_Array< Numattr > &list) const
UT_StringHolder opNumattr_name(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setEncodenames(bool val)
int int appendSprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
UT_Vector4D opinstNumattr_valuev(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
int64 opNumattr_typeinfo(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void loadData(UT_IStream &is, UT_Vector2I &v)
const UT_Array< Numattr > & getNumattr() const
int64 opinstNumattr_type(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void copyFrom(const OP_NodeParms *src) override
UT_StringHolder opinstNumattr_varname(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
int64 opinstNumattr_precision(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
DEP_MicroNode * depnode() const
bool operator!=(const Numattr &src) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & w() noexcept
SYS_FORCE_INLINE void append(char character)
int64 opinstNumattr_existing(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
int64 opNumattr_type(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void saveData(std::ostream &os, fpreal64 v)
fpreal getCookTime() const
SYS_FORCE_INLINE UT_StringHolder getToken(Grouptype enum_value)
const char * findChar(int c) const
static void loadData(UT_IStream &is, UT_Vector2D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
UT_Vector4T< fpreal64 > UT_Vector4D
constexpr SYS_FORCE_INLINE T & y() noexcept
static void loadData(UT_IStream &is, int64 &v)
static void saveData(std::ostream &os, UT_Matrix3D v)
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
static void loadData(UT_IStream &is, UT_StringHolder &v)
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
bool opNumattr_enable(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
UT_Vector4D opNumattr_defaultv(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void loadData(UT_IStream &is, bool &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
constexpr SYS_FORCE_INLINE T & y() noexcept
SYS_FORCE_INLINE bool isstring() const
Grouptype opGrouptype(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector4D opinstNumattr_defaultv(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
int64 opNumattr_existing(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool opEncodenames(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & x() noexcept