43 if (bindname != src.
bindname)
return false;
44 if (bindparm != src.
bindparm)
return false;
60 for (
int i = 0; i < list.
entries(); i++)
85 bindgroupname =
""_UTsh;
86 bindgroupparm =
""_UTsh;
109 for (
int i = 0; i < list.
entries(); i++)
130 myVexOutputMask =
"*"_UTsh;
132 myGroupAutobind =
true;
134 myBindGroup =
""_UTsh;
136 myMultiThread =
true;
137 myUpdateNormals =
false;
139 myThreadJobSize = 1024;
140 myMatchAttrib =
"id"_UTsh;
141 mySelectionGroup =
""_UTsh;
142 myCookInPlace =
false;
143 myVexPrecision =
"auto"_UTsh;
146 myEnforcePrototypes =
false;
147 myExportList =
"*"_UTsh;
160 if (myVexCWD != src.myVexCWD)
return false;
161 if (myVexOutputMask != src.myVexOutputMask)
return false;
162 if (myBindings != src.myBindings)
return false;
163 if (myGroupBindings != src.myGroupBindings)
return false;
164 if (myAutobind != src.myAutobind)
return false;
165 if (myGroupAutobind != src.myGroupAutobind)
return false;
166 if (myBindClass != src.myBindClass)
return false;
167 if (myBindGroup != src.myBindGroup)
return false;
168 if (myBindGroupType != src.myBindGroupType)
return false;
169 if (myMultiThread != src.myMultiThread)
return false;
170 if (myUpdateNormals != src.myUpdateNormals)
return false;
171 if (myNumCount != src.myNumCount)
return false;
172 if (myThreadJobSize != src.myThreadJobSize)
return false;
173 if (myMatchAttrib != src.myMatchAttrib)
return false;
174 if (mySelectionGroup != src.mySelectionGroup)
return false;
175 if (myCookInPlace != src.myCookInPlace)
return false;
176 if (myVexPrecision != src.myVexPrecision)
return false;
177 if (myVexSource != src.myVexSource)
return false;
178 if (mySnippet != src.mySnippet)
return false;
179 if (myEnforcePrototypes != src.myEnforcePrototypes)
return false;
180 if (myExportList != src.myExportList)
return false;
195 graph->
evalOpParm(myVexCWD, nodeidx,
"vex_cwdpath", time, 0);
196 myVexOutputMask =
"*"_UTsh;
198 graph->
evalOpParm(myVexOutputMask, nodeidx,
"vex_outputmask", time, 0);
202 graph->
evalOpParm(length, nodeidx,
"bindings", time, 0);
203 if (length < 0) length = 0;
204 myBindings.setSize(length);
211 auto && _curentry = myBindings(i);
213 _curentry.bindname =
""_UTsh;
215 graph->
evalOpParmInst(_curentry.bindname, nodeidx,
"bindname#", parmidx, offsets, time, 0, 2-1);
216 _curentry.bindparm =
""_UTsh;
218 graph->
evalOpParmInst(_curentry.bindparm, nodeidx,
"bindparm#", parmidx, offsets, time, 0, 2-1);
227 graph->
evalOpParm(length, nodeidx,
"groupbindings", time, 0);
228 if (length < 0) length = 0;
229 myGroupBindings.setSize(length);
236 auto && _curentry = myGroupBindings(i);
238 _curentry.bindgroupname =
""_UTsh;
240 graph->
evalOpParmInst(_curentry.bindgroupname, nodeidx,
"bindgroupname#", parmidx, offsets, time, 0, 2-1);
241 _curentry.bindgroupparm =
""_UTsh;
243 graph->
evalOpParmInst(_curentry.bindgroupparm, nodeidx,
"bindgroupparm#", parmidx, offsets, time, 0, 2-1);
248 myGroupBindings.clear();
251 graph->
evalOpParm(myAutobind, nodeidx,
"autobind", time, 0);
252 myGroupAutobind =
true;
254 graph->
evalOpParm(myGroupAutobind, nodeidx,
"groupautobind", time, 0);
257 graph->
evalOpParm(myBindClass, nodeidx,
"bindclass", time, 0);
258 myBindGroup =
""_UTsh;
260 graph->
evalOpParm(myBindGroup, nodeidx,
"bindgroup", time, 0);
263 graph->
evalOpParm(myBindGroupType, nodeidx,
"bindgrouptype", time, 0);
264 myMultiThread =
true;
266 graph->
evalOpParm(myMultiThread, nodeidx,
"vex_multithread", time, 0);
267 myUpdateNormals =
false;
269 graph->
evalOpParm(myUpdateNormals, nodeidx,
"vex_updatenmls", time, 0);
271 if (
true && ( (getBindClass()==4) ) )
272 graph->
evalOpParm(myNumCount, nodeidx,
"vex_numcount", time, 0);
273 myThreadJobSize = 1024;
274 if (
true && ( (getBindClass()==4) ) )
275 graph->
evalOpParm(myThreadJobSize, nodeidx,
"vex_threadjobsize", time, 0);
276 myMatchAttrib =
"id"_UTsh;
278 graph->
evalOpParm(myMatchAttrib, nodeidx,
"vex_matchattrib", time, 0);
279 mySelectionGroup =
""_UTsh;
281 graph->
evalOpParm(mySelectionGroup, nodeidx,
"vex_selectiongroup", time, 0);
282 myCookInPlace =
false;
284 graph->
evalOpParm(myCookInPlace, nodeidx,
"vex_inplace", time, 0);
285 myVexPrecision =
"auto"_UTsh;
287 graph->
evalOpParm(myVexPrecision, nodeidx,
"vex_precision", time, 0);
290 graph->
evalOpParm(myVexSource, nodeidx,
"vexsrc", time, 0);
292 if (
true && ( (getVexSource()==3) ) )
293 graph->
evalOpParm(mySnippet, nodeidx,
"vexsnippet", time, 0);
294 myEnforcePrototypes =
false;
295 if (
true && ( (getVexSource()==3) ) )
296 graph->
evalOpParm(myEnforcePrototypes, nodeidx,
"vex_strict", time, 0);
297 myExportList =
"*"_UTsh;
298 if (
true && ( (getVexSource()==3) ) )
299 graph->
evalOpParm(myExportList, nodeidx,
"vex_exportlist", time, 0);
315 template <
typename T>
322 if (idx.
size() != instance.
size()+1)
335 else if (instance[0] < myBindings.entries())
337 auto && _data = myBindings(instance[0]);
353 else if (instance[0] < myGroupBindings.entries())
355 auto && _data = myGroupBindings(instance[0]);
433 { doGetParmValue(idx, instance, value); }
435 { doGetParmValue(idx, instance, value); }
437 { doGetParmValue(idx, instance, value); }
439 { doGetParmValue(idx, instance, value); }
441 { doGetParmValue(idx, instance, value); }
443 { doGetParmValue(idx, instance, value); }
445 { doGetParmValue(idx, instance, value); }
447 { doGetParmValue(idx, instance, value); }
449 { doGetParmValue(idx, instance, value); }
451 { doGetParmValue(idx, instance, value); }
453 { doGetParmValue(idx, instance, value); }
455 template <
typename T>
462 if (idx.
size() != instance.
size()+1)
477 if (newsize < 0) newsize = 0;
478 myBindings.setSize(newsize);
484 myBindings.setSizeIfNeeded(instance[0]+1);
485 auto && _data = myBindings(instance[0]);
503 if (newsize < 0) newsize = 0;
504 myGroupBindings.setSize(newsize);
510 myGroupBindings.setSizeIfNeeded(instance[0]+1);
511 auto && _data = myGroupBindings(instance[0]);
580 { doSetParmValue(idx, instance, value); }
582 { doSetParmValue(idx, instance, value); }
584 { doSetParmValue(idx, instance, value); }
586 { doSetParmValue(idx, instance, value); }
588 { doSetParmValue(idx, instance, 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); }
620 if (fieldnum.
size() < 1)
625 return "vex_cwdpath";
627 return "vex_outputmask";
629 if (fieldnum.
size() == 1)
641 if (fieldnum.
size() == 1)
642 return "groupbindings";
646 return "bindgroupname#";
648 return "bindgroupparm#";
655 return "groupautobind";
661 return "bindgrouptype";
663 return "vex_multithread";
665 return "vex_updatenmls";
667 return "vex_numcount";
669 return "vex_threadjobsize";
671 return "vex_matchattrib";
673 return "vex_selectiongroup";
675 return "vex_inplace";
677 return "vex_precision";
685 return "vex_exportlist";
693 if (fieldnum.
size() < 1)
694 return PARM_UNSUPPORTED;
702 if (fieldnum.
size() == 1)
703 return PARM_MULTIPARM;
714 if (fieldnum.
size() == 1)
715 return PARM_MULTIPARM;
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
873 saveData(os, myVexCWD);
874 saveData(os, myVexOutputMask);
877 UTwrite(os, &length);
880 auto && _curentry = myBindings(i);
882 saveData(os, _curentry.bindname);
883 saveData(os, _curentry.bindparm);
889 UTwrite(os, &length);
892 auto && _curentry = myGroupBindings(i);
894 saveData(os, _curentry.bindgroupname);
895 saveData(os, _curentry.bindgroupparm);
899 saveData(os, myAutobind);
900 saveData(os, myGroupAutobind);
901 saveData(os, myBindClass);
902 saveData(os, myBindGroup);
903 saveData(os, myBindGroupType);
904 saveData(os, myMultiThread);
905 saveData(os, myUpdateNormals);
906 saveData(os, myNumCount);
907 saveData(os, myThreadJobSize);
908 saveData(os, myMatchAttrib);
909 saveData(os, mySelectionGroup);
910 saveData(os, myCookInPlace);
911 saveData(os, myVexPrecision);
912 saveData(os, myVexSource);
913 saveData(os, mySnippet);
914 saveData(os, myEnforcePrototypes);
915 saveData(os, myExportList);
928 loadData(is, myVexCWD);
929 loadData(is, myVexOutputMask);
933 myBindings.setSize(length);
936 auto && _curentry = myBindings(i);
938 loadData(is, _curentry.bindname);
939 loadData(is, _curentry.bindparm);
946 myGroupBindings.setSize(length);
949 auto && _curentry = myGroupBindings(i);
951 loadData(is, _curentry.bindgroupname);
952 loadData(is, _curentry.bindgroupparm);
956 loadData(is, myAutobind);
957 loadData(is, myGroupAutobind);
958 loadData(is, myBindClass);
959 loadData(is, myBindGroup);
960 loadData(is, myBindGroupType);
961 loadData(is, myMultiThread);
962 loadData(is, myUpdateNormals);
963 loadData(is, myNumCount);
964 loadData(is, myThreadJobSize);
965 loadData(is, myMatchAttrib);
966 loadData(is, mySelectionGroup);
967 loadData(is, myCookInPlace);
968 loadData(is, myVexPrecision);
969 loadData(is, myVexSource);
970 loadData(is, mySnippet);
971 loadData(is, myEnforcePrototypes);
972 loadData(is, myExportList);
982 if (!thissop)
return getVexCWD();
984 OP_Utils::evalOpParm(result, thissop,
"vex_cwdpath", cookparms.
getCookTime(), 0);
992 if (!thissop)
return getVexOutputMask();
994 OP_Utils::evalOpParm(result, thissop,
"vex_outputmask", cookparms.
getCookTime(), 0);
1002 if (!thissop)
return getBindings().entries();
1004 OP_Utils::evalOpParm(result, thissop,
"bindings", cookparms.
getCookTime(), 0);
1008 {
return opinstBindings_bindname(cookparms, &_idx); }
1012 if (!thissop)
return (myBindings(_idx[0]).bindname);
1014 _parmidx[1-1] = _idx[1-1] + 1;
1017 OP_Utils::evalOpParmInst(result, thissop,
"bindname#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1021 {
return opinstBindings_bindparm(cookparms, &_idx); }
1025 if (!thissop)
return (myBindings(_idx[0]).bindparm);
1027 _parmidx[1-1] = _idx[1-1] + 1;
1030 OP_Utils::evalOpParmInst(result, thissop,
"bindparm#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1039 if (!thissop)
return getGroupBindings().entries();
1041 OP_Utils::evalOpParm(result, thissop,
"groupbindings", cookparms.
getCookTime(), 0);
1045 {
return opinstGroupBindings_bindgroupname(cookparms, &_idx); }
1049 if (!thissop)
return (myGroupBindings(_idx[0]).bindgroupname);
1051 _parmidx[1-1] = _idx[1-1] + 1;
1054 OP_Utils::evalOpParmInst(result, thissop,
"bindgroupname#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1058 {
return opinstGroupBindings_bindgroupparm(cookparms, &_idx); }
1062 if (!thissop)
return (myGroupBindings(_idx[0]).bindgroupparm);
1064 _parmidx[1-1] = _idx[1-1] + 1;
1067 OP_Utils::evalOpParmInst(result, thissop,
"bindgroupparm#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1076 if (!thissop)
return getAutobind();
1078 OP_Utils::evalOpParm(result, thissop,
"autobind", cookparms.
getCookTime(), 0);
1086 if (!thissop)
return getGroupAutobind();
1088 OP_Utils::evalOpParm(result, thissop,
"groupautobind", cookparms.
getCookTime(), 0);
1096 if (!thissop)
return getBindClass();
1098 OP_Utils::evalOpParm(result, thissop,
"bindclass", cookparms.
getCookTime(), 0);
1106 if (!thissop)
return getBindGroup();
1108 OP_Utils::evalOpParm(result, thissop,
"bindgroup", cookparms.
getCookTime(), 0);
1116 if (!thissop)
return getBindGroupType();
1118 OP_Utils::evalOpParm(result, thissop,
"bindgrouptype", cookparms.
getCookTime(), 0);
1126 if (!thissop)
return getMultiThread();
1128 OP_Utils::evalOpParm(result, thissop,
"vex_multithread", cookparms.
getCookTime(), 0);
1136 if (!thissop)
return getUpdateNormals();
1138 OP_Utils::evalOpParm(result, thissop,
"vex_updatenmls", cookparms.
getCookTime(), 0);
1146 if (!thissop)
return getNumCount();
1148 OP_Utils::evalOpParm(result, thissop,
"vex_numcount", cookparms.
getCookTime(), 0);
1156 if (!thissop)
return getThreadJobSize();
1158 OP_Utils::evalOpParm(result, thissop,
"vex_threadjobsize", cookparms.
getCookTime(), 0);
1166 if (!thissop)
return getMatchAttrib();
1168 OP_Utils::evalOpParm(result, thissop,
"vex_matchattrib", cookparms.
getCookTime(), 0);
1176 if (!thissop)
return getSelectionGroup();
1178 OP_Utils::evalOpParm(result, thissop,
"vex_selectiongroup", cookparms.
getCookTime(), 0);
1186 if (!thissop)
return getCookInPlace();
1188 OP_Utils::evalOpParm(result, thissop,
"vex_inplace", cookparms.
getCookTime(), 0);
1196 if (!thissop)
return getVexPrecision();
1198 OP_Utils::evalOpParm(result, thissop,
"vex_precision", cookparms.
getCookTime(), 0);
1206 if (!thissop)
return getVexSource();
1208 OP_Utils::evalOpParm(result, thissop,
"vexsrc", cookparms.
getCookTime(), 0);
1216 if (!thissop)
return getSnippet();
1218 OP_Utils::evalOpParm(result, thissop,
"vexsnippet", cookparms.
getCookTime(), 0);
1226 if (!thissop)
return getEnforcePrototypes();
1228 OP_Utils::evalOpParm(result, thissop,
"vex_strict", cookparms.
getCookTime(), 0);
1236 if (!thissop)
return getExportList();
1238 OP_Utils::evalOpParm(result, thissop,
"vex_exportlist", cookparms.
getCookTime(), 0);
1248 bool myGroupAutobind;
1251 int64 myBindGroupType;
1253 bool myUpdateNormals;
1255 int64 myThreadJobSize;
1262 bool myEnforcePrototypes;
const char * getNestParmName(TempIndex fieldnum) const override
ParmType getNestParmType(TempIndex fieldnum) const override
static void loadData(UT_IStream &is, fpreal64 &v)
const UT_Array< GroupBindings > & getGroupBindings() const
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
GLenum GLuint GLenum GLsizei const GLchar * buf
void setExportList(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_Vector3D &v)
UT_StringHolder opinstBindings_bindparm(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
exint opGroupBindings(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Matrix3D &v)
SOP_Node * getNode() const
const UT_StringHolder & getMatchAttrib() const
bool getEnforcePrototypes() const
bool operator==(const GroupBindings &src) const
UT_StringHolder opExportList(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opVexOutputMask(const SOP_NodeVerb::CookParms &cookparms) const
exint opBindings(const SOP_NodeVerb::CookParms &cookparms) const
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
UT_StringHolder opVexCWD(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
const UT_StringHolder & getVexPrecision() const
void setMultiThread(bool val)
UT_StringHolder opMatchAttrib(const SOP_NodeVerb::CookParms &cookparms) const
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
const OP_Context & context() const
void setVexCWD(const UT_StringHolder &val)
constexpr SYS_FORCE_INLINE T & z() noexcept
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
SYS_FORCE_INLINE const char * buffer() const
int64 opVexSource(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getExportList() const
GLuint GLsizei GLsizei * length
An output stream object that owns its own string buffer storage.
void setEnforcePrototypes(bool val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
UT_StringHolder bindgroupparm
void setMatchAttrib(const UT_StringHolder &val)
**But if you need a result
static void loadData(UT_IStream &is, UT_Vector4I &v)
bool operator!=(const Bindings &src) const
static void saveData(std::ostream &os, fpreal64 v)
UT_StringHolder createString(const UT_Array< Bindings > &list) const
int64 opNumCount(const SOP_NodeVerb::CookParms &cookparms) const
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
UT_StringHolder opGroupBindings_bindgroupparm(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
static void loadData(UT_IStream &is, bool &v)
void copyFrom(const OP_NodeParms *src) override
static void saveData(std::ostream &os, UT_Matrix3D v)
constexpr SYS_FORCE_INLINE T & x() noexcept
UT_StringHolder opGroupBindings_bindgroupname(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setBindGroupType(int64 val)
void setBindGroup(const UT_StringHolder &val)
static void saveData(std::ostream &os, UT_Matrix4D v)
GLuint GLsizei const GLuint const GLintptr * offsets
UT_StringHolder createString(const UT_Array< GroupBindings > &list) const
constexpr SYS_FORCE_INLINE T & x() noexcept
void setVexSource(int64 val)
bool opMultiThread(const SOP_NodeVerb::CookParms &cookparms) const
void setThreadJobSize(int64 val)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
static void saveData(std::ostream &os, UT_Vector2D v)
const UT_StringHolder & getBindGroup() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
void setAutobind(bool val)
bool getUpdateNormals() const
void setGroupBindings(const UT_Array< GroupBindings > &val)
const UT_StringHolder & getSelectionGroup() const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
UT_StringHolder opSnippet(const SOP_NodeVerb::CookParms &cookparms) const
bool getGroupAutobind() const
bool opGroupAutobind(const SOP_NodeVerb::CookParms &cookparms) const
exint getNestNumParms(TempIndex idx) const override
UT_StringHolder opinstGroupBindings_bindgroupname(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void save(std::ostream &os) const
const UT_StringHolder & getVexCWD() const
int64 getBindGroupType() 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
UT_StringHolder opinstBindings_bindname(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
UT_StringHolder opVexPrecision(const SOP_NodeVerb::CookParms &cookparms) const
void setCookInPlace(bool val)
static void loadData(UT_IStream &is, UT_StringHolder &v)
bool isParmColorRamp(exint idx) const override
bool operator!=(const GroupBindings &src) const
exint read(bool *array, exint sz=1)
const OP_GraphProxy * graph() const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
static void saveData(std::ostream &os, UT_StringHolder s)
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
UT_StringHolder opBindings_bindparm(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void loadData(UT_IStream &is, UT_Vector2D &v)
static void saveData(std::ostream &os, UT_Vector3D v)
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
static void saveData(std::ostream &os, UT_Vector4D v)
const UT_Array< Bindings > & getBindings() const
bool operator==(const SOP_AttribVopParms &src) 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
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
bool load(UT_IStream &is)
bool operator==(const Bindings &src) const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
static void loadData(UT_IStream &is, int64 &v)
void setUpdateNormals(bool val)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
static void saveData(std::ostream &os, PRM_DataItemHandle s)
static void loadData(UT_IStream &is, UT_Matrix4D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
SYS_FORCE_INLINE void strcat(const char *src)
void saveBinary(std::ostream &os) const
Save string to binary stream.
static void loadData(UT_IStream &is, UT_Vector2I &v)
UT_StringHolder opBindGroup(const SOP_NodeVerb::CookParms &cookparms) const
void setSnippet(const UT_StringHolder &val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
UT_StringHolder opSelectionGroup(const SOP_NodeVerb::CookParms &cookparms) const
GT_API const UT_StringHolder version
void setBindings(const UT_Array< Bindings > &val)
exint entries() const
Alias of size(). size() is preferred.
int64 opBindGroupType(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector3I &v)
bool getCookInPlace() const
bool opUpdateNormals(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, bool v)
void coerceValue(T &result, const S &src) const
UT_StringHolder opinstGroupBindings_bindgroupparm(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
DEP_MicroNode * depnode() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
void setBindClass(int64 val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
Utility class for containing a color ramp.
bool operator!=(const SOP_AttribVopParms &src) const
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
constexpr SYS_FORCE_INLINE T & w() noexcept
SYS_FORCE_INLINE void append(char character)
bool opAutobind(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getVexOutputMask() const
void setSelectionGroup(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
int64 getVexSource() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
int64 getThreadJobSize() const
fpreal getCookTime() const
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
void loadFromOpSubclass(const LoadParms &loadparms) override
UT_StringHolder bindgroupname
const char * findChar(int c) const
bool opCookInPlace(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
int64 opBindClass(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
bool getMultiThread() const
static void saveData(std::ostream &os, UT_Matrix2D v)
void setVexOutputMask(const UT_StringHolder &val)
void setGroupAutobind(bool val)
int64 opThreadJobSize(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector4D &v)
constexpr SYS_FORCE_INLINE T & y() noexcept
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
int64 getNumCount() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
void setVexPrecision(const UT_StringHolder &val)
UT_StringHolder opBindings_bindname(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
const UT_StringHolder & getSnippet() const
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
bool opEnforcePrototypes(const SOP_NodeVerb::CookParms &cookparms) const
int64 getBindClass() const
constexpr SYS_FORCE_INLINE T & y() noexcept
SYS_FORCE_INLINE bool isstring() const
static void saveData(std::ostream &os, int64 v)
OP_NodeParms & operator=(const OP_NodeParms &)=default
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
void setNumCount(int64 val)
constexpr SYS_FORCE_INLINE T & x() noexcept
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override