23 namespace SOP_AttribCombineEnums
115 blendattrib =
""_UTsh;
122 if (enable != src.
enable)
return false;
123 if (combine != src.
combine)
return false;
124 if (adjust != src.
adjust)
return false;
125 if (srcattrib != src.
srcattrib)
return false;
126 if (srcinput != src.
srcinput)
return false;
128 if (
add != src.
add)
return false;
129 if (process != src.
process)
return false;
133 if (blendinput != src.
blendinput)
return false;
149 for (
int i = 0; i < list.
entries(); i++)
155 buf.
appendSprintf(
"%s", (list(i).enable) ?
"true" :
"false");
191 myDstAttrib =
""_UTsh;
193 myCombinations.setSize(1);
195 myDoThreshold =
false;
197 myDoClampMin =
false;
199 myDoClampMax =
false;
201 myAttribMatch =
"id"_UTsh;
202 myCreateMissing =
true;
203 myForceScalar =
false;
204 myDeleteSource =
false;
205 myErrorMissing =
true;
218 if (myGroup != src.myGroup)
return false;
219 if (myGroupType != src.myGroupType)
return false;
220 if (myDstAttrib != src.myDstAttrib)
return false;
221 if (myClass != src.myClass)
return false;
222 if (myCombinations != src.myCombinations)
return false;
223 if (myPostScale != src.myPostScale)
return false;
224 if (myDoThreshold != src.myDoThreshold)
return false;
225 if (myThreshold != src.myThreshold)
return false;
226 if (myDoClampMin != src.myDoClampMin)
return false;
227 if (myClampMin != src.myClampMin)
return false;
228 if (myDoClampMax != src.myDoClampMax)
return false;
229 if (myClampMax != src.myClampMax)
return false;
230 if (myAttribMatch != src.myAttribMatch)
return false;
231 if (myCreateMissing != src.myCreateMissing)
return false;
232 if (myForceScalar != src.myForceScalar)
return false;
233 if (myDeleteSource != src.myDeleteSource)
return false;
234 if (myErrorMissing != src.myErrorMissing)
return false;
257 graph->
evalOpParm(myGroup, nodeidx,
"group", time, 0);
260 graph->
evalOpParm(myGroupType, nodeidx,
"grouptype", time, 0);
261 myDstAttrib =
""_UTsh;
263 graph->
evalOpParm(myDstAttrib, nodeidx,
"dstattrib", time, 0);
266 graph->
evalOpParm(myClass, nodeidx,
"class", time, 0);
270 graph->
evalOpParm(length, nodeidx,
"numcombines", time, 0);
271 if (length < 0) length = 0;
272 myCombinations.setSize(length);
279 auto && _curentry = myCombinations(i);
281 _curentry.enable =
true;
283 graph->
evalOpParmInst(_curentry.enable, nodeidx,
"enable#", parmidx, offsets, time, 0, 2-1);
284 _curentry.combine = 1;
285 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
286 graph->
evalOpParmInst(_curentry.combine, nodeidx,
"combine#", parmidx, offsets, time, 0, 2-1);
287 _curentry.adjust = 0;
288 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
289 graph->
evalOpParmInst(_curentry.adjust, nodeidx,
"adjust#", parmidx, offsets, time, 0, 2-1);
290 _curentry.srcattrib =
""_UTsh;
291 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
292 graph->
evalOpParmInst(_curentry.srcattrib, nodeidx,
"srcattrib#", parmidx, offsets, time, 0, 2-1);
293 _curentry.srcinput = 0;
294 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
295 graph->
evalOpParmInst(_curentry.srcinput, nodeidx,
"srcinput#", parmidx, offsets, time, 0, 2-1);
297 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.adjust==0)))) ) )
298 graph->
evalOpParmInst(_curentry.scale, nodeidx,
"scale#", parmidx, offsets, time, 0, 2-1);
300 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.adjust==0))||((_curentry.adjust==1)))) ) )
301 graph->
evalOpParmInst(_curentry.add, nodeidx,
"add#", parmidx, offsets, time, 0, 2-1);
302 _curentry.process = 0;
303 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.adjust==0))||((_curentry.adjust==1))||((_curentry.adjust==2)))) ) )
304 graph->
evalOpParmInst(_curentry.process, nodeidx,
"process#", parmidx, offsets, time, 0, 2-1);
306 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
307 graph->
evalOpParmInst(_curentry.blend, nodeidx,
"blend#", parmidx, offsets, time, 0, 2-1);
308 _curentry.doblendattrib = 0;
309 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
310 graph->
evalOpParmInst(_curentry.doblendattrib, nodeidx,
"doblendattrib#", parmidx, offsets, time, 0, 2-1);
311 _curentry.blendattrib =
""_UTsh;
312 if (
true && ( (
true&&!(((_curentry.doblendattrib==0))||((_curentry.enable==0)))) ) )
313 graph->
evalOpParmInst(_curentry.blendattrib, nodeidx,
"blendattrib#", parmidx, offsets, time, 0, 2-1);
314 _curentry.blendinput = 0;
315 if (
true && ( (
true&&!(((_curentry.doblendattrib==0))||((_curentry.enable==0)))) ) )
316 graph->
evalOpParmInst(_curentry.blendinput, nodeidx,
"blendinput#", parmidx, offsets, time, 0, 2-1);
321 myCombinations.clear();
324 graph->
evalOpParm(myPostScale, nodeidx,
"postscale", time, 0);
325 myDoThreshold =
false;
327 graph->
evalOpParm(myDoThreshold, nodeidx,
"dothreshold", time, 0);
329 if (
true && ( (
true&&!(((getDoThreshold()==0)))) ) )
330 graph->
evalOpParm(myThreshold, nodeidx,
"threshold", time, 0);
331 myDoClampMin =
false;
333 graph->
evalOpParm(myDoClampMin, nodeidx,
"doclampmin", time, 0);
335 if (
true && ( (
true&&!(((getDoClampMin()==0)&&(getDoThreshold()==0)))) ) )
336 graph->
evalOpParm(myClampMin, nodeidx,
"clampmin", time, 0);
337 myDoClampMax =
false;
339 graph->
evalOpParm(myDoClampMax, nodeidx,
"doclampmax", time, 0);
341 if (
true && ( (
true&&!(((getDoClampMax()==0)&&(getDoThreshold()==0)))) ) )
342 graph->
evalOpParm(myClampMax, nodeidx,
"clampmax", time, 0);
343 myAttribMatch =
"id"_UTsh;
345 graph->
evalOpParm(myAttribMatch, nodeidx,
"attribmatch", time, 0);
346 myCreateMissing =
true;
348 graph->
evalOpParm(myCreateMissing, nodeidx,
"createmissing", time, 0);
349 myForceScalar =
false;
350 if (
true && ( (
true&&!(((getCreateMissing()==0)))) ) )
351 graph->
evalOpParm(myForceScalar, nodeidx,
"forcescalar", time, 0);
352 myDeleteSource =
false;
354 graph->
evalOpParm(myDeleteSource, nodeidx,
"deletesource", time, 0);
355 myErrorMissing =
true;
357 graph->
evalOpParm(myErrorMissing, nodeidx,
"errormissing", time, 0);
373 template <
typename T>
380 if (idx.
size() != instance.
size()+1)
399 else if (instance[0] < myCombinations.entries())
401 auto && _data = myCombinations(instance[0]);
494 { doGetParmValue(idx, instance, value); }
496 { doGetParmValue(idx, instance, value); }
498 { doGetParmValue(idx, instance, value); }
500 { doGetParmValue(idx, instance, value); }
502 { doGetParmValue(idx, instance, value); }
504 { doGetParmValue(idx, instance, value); }
506 { doGetParmValue(idx, instance, value); }
508 { doGetParmValue(idx, instance, value); }
510 { doGetParmValue(idx, instance, value); }
512 { doGetParmValue(idx, instance, value); }
514 { doGetParmValue(idx, instance, value); }
516 template <
typename T>
523 if (idx.
size() != instance.
size()+1)
544 if (newsize < 0) newsize = 0;
545 myCombinations.setSize(newsize);
551 myCombinations.setSizeIfNeeded(instance[0]+1);
552 auto && _data = myCombinations(instance[0]);
636 { doSetParmValue(idx, instance, value); }
638 { doSetParmValue(idx, instance, value); }
640 { doSetParmValue(idx, instance, 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); }
674 if (fieldnum.
size() < 1)
687 if (fieldnum.
size() == 1)
688 return "numcombines";
710 return "doblendattrib#";
712 return "blendattrib#";
714 return "blendinput#";
721 return "dothreshold";
733 return "attribmatch";
735 return "createmissing";
737 return "forcescalar";
739 return "deletesource";
741 return "errormissing";
749 if (fieldnum.
size() < 1)
750 return PARM_UNSUPPORTED;
762 if (fieldnum.
size() == 1)
763 return PARM_MULTIPARM;
838 {
for (
int r = 0;
r < 2;
r++)
for (
int c = 0; c < 2; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
840 {
for (
int r = 0;
r < 3;
r++)
for (
int c = 0; c < 3; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
842 {
for (
int r = 0;
r < 4;
r++)
for (
int c = 0; c < 4; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
855 loadData(is, rampdata);
873 int typelen = colon - data.
buffer();
887 {
int64 iv =
v; UTwrite(os, &iv); }
889 { UTwrite<fpreal64>(os, &
v); }
891 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
893 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
894 UTwrite<fpreal64>(os, &v.
z()); }
896 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
897 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
909 if (s) s->save(ostr);
911 saveData(os, result);
918 ostr << s->getDataTypeToken();
923 saveData(os, result);
927 void save(std::ostream &os)
const
931 saveData(os, myGroup);
932 saveData(os, myGroupType);
933 saveData(os, myDstAttrib);
934 saveData(os, myClass);
937 UTwrite(os, &length);
940 auto && _curentry = myCombinations(i);
942 saveData(os, _curentry.enable);
943 saveData(os, _curentry.combine);
944 saveData(os, _curentry.adjust);
945 saveData(os, _curentry.srcattrib);
946 saveData(os, _curentry.srcinput);
947 saveData(os, _curentry.scale);
948 saveData(os, _curentry.add);
949 saveData(os, _curentry.process);
950 saveData(os, _curentry.blend);
951 saveData(os, _curentry.doblendattrib);
952 saveData(os, _curentry.blendattrib);
953 saveData(os, _curentry.blendinput);
957 saveData(os, myPostScale);
958 saveData(os, myDoThreshold);
959 saveData(os, myThreshold);
960 saveData(os, myDoClampMin);
961 saveData(os, myClampMin);
962 saveData(os, myDoClampMax);
963 saveData(os, myClampMax);
964 saveData(os, myAttribMatch);
965 saveData(os, myCreateMissing);
966 saveData(os, myForceScalar);
967 saveData(os, myDeleteSource);
968 saveData(os, myErrorMissing);
981 loadData(is, myGroup);
982 loadData(is, myGroupType);
983 loadData(is, myDstAttrib);
984 loadData(is, myClass);
988 myCombinations.setSize(length);
991 auto && _curentry = myCombinations(i);
993 loadData(is, _curentry.enable);
994 loadData(is, _curentry.combine);
995 loadData(is, _curentry.adjust);
996 loadData(is, _curentry.srcattrib);
997 loadData(is, _curentry.srcinput);
998 loadData(is, _curentry.scale);
999 loadData(is, _curentry.add);
1000 loadData(is, _curentry.process);
1001 loadData(is, _curentry.blend);
1002 loadData(is, _curentry.doblendattrib);
1003 loadData(is, _curentry.blendattrib);
1004 loadData(is, _curentry.blendinput);
1008 loadData(is, myPostScale);
1009 loadData(is, myDoThreshold);
1010 loadData(is, myThreshold);
1011 loadData(is, myDoClampMin);
1012 loadData(is, myClampMin);
1013 loadData(is, myDoClampMax);
1014 loadData(is, myClampMax);
1015 loadData(is, myAttribMatch);
1016 loadData(is, myCreateMissing);
1017 loadData(is, myForceScalar);
1018 loadData(is, myDeleteSource);
1019 loadData(is, myErrorMissing);
1029 if (!thissop)
return getGroup();
1031 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
1039 if (!thissop)
return getGroupType();
1041 OP_Utils::evalOpParm(result, thissop,
"grouptype", cookparms.
getCookTime(), 0);
1049 if (!thissop)
return getDstAttrib();
1051 OP_Utils::evalOpParm(result, thissop,
"dstattrib", cookparms.
getCookTime(), 0);
1059 if (!thissop)
return getClass();
1061 OP_Utils::evalOpParm(result, thissop,
"class", cookparms.
getCookTime(), 0);
1062 return Class(result);
1069 if (!thissop)
return getCombinations().entries();
1071 OP_Utils::evalOpParm(result, thissop,
"numcombines", cookparms.
getCookTime(), 0);
1075 {
return opinstCombinations_enable(cookparms, &_idx); }
1079 if (!thissop)
return (myCombinations(_idx[0]).enable);
1081 _parmidx[1-1] = _idx[1-1] + 1;
1084 OP_Utils::evalOpParmInst(result, thissop,
"enable#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1088 {
return opinstCombinations_combine(cookparms, &_idx); }
1092 if (!thissop)
return (myCombinations(_idx[0]).combine);
1094 _parmidx[1-1] = _idx[1-1] + 1;
1097 OP_Utils::evalOpParmInst(result, thissop,
"combine#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1101 {
return opinstCombinations_adjust(cookparms, &_idx); }
1105 if (!thissop)
return (myCombinations(_idx[0]).adjust);
1107 _parmidx[1-1] = _idx[1-1] + 1;
1110 OP_Utils::evalOpParmInst(result, thissop,
"adjust#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1114 {
return opinstCombinations_srcattrib(cookparms, &_idx); }
1118 if (!thissop)
return (myCombinations(_idx[0]).srcattrib);
1120 _parmidx[1-1] = _idx[1-1] + 1;
1123 OP_Utils::evalOpParmInst(result, thissop,
"srcattrib#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1127 {
return opinstCombinations_srcinput(cookparms, &_idx); }
1131 if (!thissop)
return (myCombinations(_idx[0]).srcinput);
1133 _parmidx[1-1] = _idx[1-1] + 1;
1136 OP_Utils::evalOpParmInst(result, thissop,
"srcinput#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1140 {
return opinstCombinations_scale(cookparms, &_idx); }
1144 if (!thissop)
return (myCombinations(_idx[0]).
scale);
1146 _parmidx[1-1] = _idx[1-1] + 1;
1149 OP_Utils::evalOpParmInst(result, thissop,
"scale#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1153 {
return opinstCombinations_add(cookparms, &_idx); }
1157 if (!thissop)
return (myCombinations(_idx[0]).
add);
1159 _parmidx[1-1] = _idx[1-1] + 1;
1162 OP_Utils::evalOpParmInst(result, thissop,
"add#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1166 {
return opinstCombinations_process(cookparms, &_idx); }
1170 if (!thissop)
return (myCombinations(_idx[0]).process);
1172 _parmidx[1-1] = _idx[1-1] + 1;
1175 OP_Utils::evalOpParmInst(result, thissop,
"process#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1179 {
return opinstCombinations_blend(cookparms, &_idx); }
1183 if (!thissop)
return (myCombinations(_idx[0]).
blend);
1185 _parmidx[1-1] = _idx[1-1] + 1;
1188 OP_Utils::evalOpParmInst(result, thissop,
"blend#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1192 {
return opinstCombinations_doblendattrib(cookparms, &_idx); }
1196 if (!thissop)
return (myCombinations(_idx[0]).doblendattrib);
1198 _parmidx[1-1] = _idx[1-1] + 1;
1201 OP_Utils::evalOpParmInst(result, thissop,
"doblendattrib#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1205 {
return opinstCombinations_blendattrib(cookparms, &_idx); }
1209 if (!thissop)
return (myCombinations(_idx[0]).blendattrib);
1211 _parmidx[1-1] = _idx[1-1] + 1;
1214 OP_Utils::evalOpParmInst(result, thissop,
"blendattrib#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1218 {
return opinstCombinations_blendinput(cookparms, &_idx); }
1222 if (!thissop)
return (myCombinations(_idx[0]).blendinput);
1224 _parmidx[1-1] = _idx[1-1] + 1;
1227 OP_Utils::evalOpParmInst(result, thissop,
"blendinput#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1236 if (!thissop)
return getPostScale();
1238 OP_Utils::evalOpParm(result, thissop,
"postscale", cookparms.
getCookTime(), 0);
1246 if (!thissop)
return getDoThreshold();
1248 OP_Utils::evalOpParm(result, thissop,
"dothreshold", cookparms.
getCookTime(), 0);
1256 if (!thissop)
return getThreshold();
1258 OP_Utils::evalOpParm(result, thissop,
"threshold", cookparms.
getCookTime(), 0);
1266 if (!thissop)
return getDoClampMin();
1268 OP_Utils::evalOpParm(result, thissop,
"doclampmin", cookparms.
getCookTime(), 0);
1276 if (!thissop)
return getClampMin();
1278 OP_Utils::evalOpParm(result, thissop,
"clampmin", cookparms.
getCookTime(), 0);
1286 if (!thissop)
return getDoClampMax();
1288 OP_Utils::evalOpParm(result, thissop,
"doclampmax", cookparms.
getCookTime(), 0);
1296 if (!thissop)
return getClampMax();
1298 OP_Utils::evalOpParm(result, thissop,
"clampmax", cookparms.
getCookTime(), 0);
1306 if (!thissop)
return getAttribMatch();
1308 OP_Utils::evalOpParm(result, thissop,
"attribmatch", cookparms.
getCookTime(), 0);
1316 if (!thissop)
return getCreateMissing();
1318 OP_Utils::evalOpParm(result, thissop,
"createmissing", cookparms.
getCookTime(), 0);
1326 if (!thissop)
return getForceScalar();
1328 OP_Utils::evalOpParm(result, thissop,
"forcescalar", cookparms.
getCookTime(), 0);
1336 if (!thissop)
return getDeleteSource();
1338 OP_Utils::evalOpParm(result, thissop,
"deletesource", cookparms.
getCookTime(), 0);
1346 if (!thissop)
return getErrorMissing();
1348 OP_Utils::evalOpParm(result, thissop,
"errormissing", cookparms.
getCookTime(), 0);
1366 bool myCreateMissing;
1368 bool myDeleteSource;
1369 bool myErrorMissing;
bool isParmColorRamp(exint idx) const override
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
UT_StringHolder opinstCombinations_srcattrib(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool getDoThreshold() const
ParmType getNestParmType(TempIndex fieldnum) const override
bool operator==(const Combinations &src) const
fpreal64 getPostScale() const
fpreal64 opCombinations_add(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void saveData(std::ostream &os, UT_Matrix2D v)
static void loadData(UT_IStream &is, UT_Vector4D &v)
void setDoClampMin(bool val)
static void saveData(std::ostream &os, UT_Vector2D v)
GLenum GLuint GLenum GLsizei const GLchar * buf
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
bool operator==(const SOP_AttribCombineParms &src) const
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
SOP_Node * getNode() const
void copyFrom(const OP_NodeParms *src) override
T clampMaxValue(fpreal maxvalue, const T &src) const
int64 opinstCombinations_srcinput(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
UT_StringHolder opCombinations_srcattrib(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
exint bread(int32 *buffer, exint asize=1)
bool getDoClampMin() const
static void saveData(std::ostream &os, UT_Matrix4D v)
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
static void saveData(std::ostream &os, UT_Vector4D v)
static void saveData(std::ostream &os, bool v)
const UT_StringHolder & getAttribMatch() const
const char * getNestParmName(TempIndex fieldnum) const override
static void saveData(std::ostream &os, fpreal64 v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
int64 opinstCombinations_process(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
const UT_StringHolder & getGroup() const
static void loadData(UT_IStream &is, UT_Matrix4D &v)
static void loadData(UT_IStream &is, UT_Matrix2D &v)
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
const OP_Context & context() const
fpreal64 opCombinations_blend(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
constexpr SYS_FORCE_INLINE T & z() noexcept
int64 opCombinations_combine(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
SYS_FORCE_INLINE const char * buffer() const
GLuint GLsizei GLsizei * length
UT_StringHolder srcattrib
An output stream object that owns its own string buffer storage.
exint opCombinations(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
bool getErrorMissing() const
**But if you need a result
T clampMinValue(fpreal minvalue, const T &src) const
void setDoClampMax(bool val)
fpreal64 getClampMax() const
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, PRM_DataItemHandle &v)
UT_StringHolder opAttribMatch(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, fpreal64 &v)
int64 opCombinations_doblendattrib(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool opinstCombinations_enable(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void saveData(std::ostream &os, UT_StringHolder s)
constexpr SYS_FORCE_INLINE T & x() noexcept
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
GLuint GLsizei const GLuint const GLintptr * offsets
constexpr SYS_FORCE_INLINE T & x() noexcept
vint4 blend(const vint4 &a, const vint4 &b, const vbool4 &mask)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
GA_API const UT_StringHolder scale
int64 opinstCombinations_combine(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
bool getCreateMissing() const
int64 opCombinations_process(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setErrorMissing(bool val)
GroupType getGroupType() const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
static void loadData(UT_IStream &is, UT_Vector4I &v)
static void loadData(UT_IStream &is, UT_Vector2D &v)
bool getDeleteSource() const
int64 opinstCombinations_doblendattrib(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
const UT_StringHolder & getDstAttrib() const
void setDoThreshold(bool val)
static void saveData(std::ostream &os, int64 v)
bool getForceScalar() const
int64 opCombinations_srcinput(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
int64 opinstCombinations_adjust(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
exint read(bool *array, exint sz=1)
const OP_GraphProxy * graph() const
void setClampMax(fpreal64 val)
bool opDoThreshold(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder blendattrib
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
static void loadData(UT_IStream &is, int64 &v)
bool getDoClampMax() const
fpreal64 opinstCombinations_add(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool opDeleteSource(const SOP_NodeVerb::CookParms &cookparms) 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
static void saveData(std::ostream &os, UT_Vector3D v)
int64 opinstCombinations_blendinput(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
fpreal64 opinstCombinations_blend(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
void setPostScale(fpreal64 val)
const UT_Array< Combinations > & getCombinations() const
bool opDoClampMax(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
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
fpreal64 getClampMin() const
bool opCombinations_enable(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
SYS_FORCE_INLINE void strcat(const char *src)
void saveBinary(std::ostream &os) const
Save string to binary stream.
void setClampMin(fpreal64 val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
GT_API const UT_StringHolder version
static void loadData(UT_IStream &is, UT_Matrix3D &v)
fpreal64 opClampMax(const SOP_NodeVerb::CookParms &cookparms) const
exint entries() const
Alias of size(). size() is preferred.
void setDeleteSource(bool val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
static void saveData(std::ostream &os, PRM_DataItemHandle s)
int int appendSprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
fpreal64 opPostScale(const SOP_NodeVerb::CookParms &cookparms) const
void coerceValue(T &result, const S &src) const
int64 opCombinations_blendinput(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
fpreal64 opCombinations_scale(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool opErrorMissing(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
fpreal64 opinstCombinations_scale(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
DEP_MicroNode * depnode() const
Utility class for containing a color ramp.
fpreal64 opClampMin(const SOP_NodeVerb::CookParms &cookparms) const
int64 opCombinations_adjust(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setAttribMatch(const UT_StringHolder &val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
constexpr SYS_FORCE_INLINE T & w() noexcept
SYS_FORCE_INLINE void append(char character)
void setForceScalar(bool val)
bool opDoClampMin(const SOP_NodeVerb::CookParms &cookparms) const
exint getNestNumParms(TempIndex idx) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
fpreal getCookTime() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
bool operator!=(const Combinations &src) const
const char * findChar(int c) const
static void loadData(UT_IStream &is, UT_Vector2I &v)
static void loadData(UT_IStream &is, UT_StringHolder &v)
bool opForceScalar(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opCombinations_blendattrib(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
ImageBuf OIIO_API add(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
static void loadData(UT_IStream &is, UT_Vector3I &v)
void setGroupType(GroupType val)
void loadFromOpSubclass(const LoadParms &loadparms) override
constexpr SYS_FORCE_INLINE T & y() noexcept
UT_StringHolder opDstAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void setGroup(const UT_StringHolder &val)
Class opClass(const SOP_NodeVerb::CookParms &cookparms) const
bool load(UT_IStream &is)
fpreal64 opThreshold(const SOP_NodeVerb::CookParms &cookparms) const
void setThreshold(fpreal64 val)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
static void loadData(UT_IStream &is, UT_Vector3D &v)
static void loadData(UT_IStream &is, bool &v)
void setCombinations(const UT_Array< Combinations > &val)
constexpr SYS_FORCE_INLINE T & y() noexcept
void save(std::ostream &os) const
SYS_FORCE_INLINE bool isstring() const
bool opCreateMissing(const SOP_NodeVerb::CookParms &cookparms) const
void setCreateMissing(bool val)
GroupType opGroupType(const SOP_NodeVerb::CookParms &cookparms) const
OP_NodeParms & operator=(const OP_NodeParms &)=default
bool operator!=(const SOP_AttribCombineParms &src) const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
fpreal64 getThreshold() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
UT_StringHolder createString(const UT_Array< Combinations > &list) const
static void saveData(std::ostream &os, UT_Matrix3D v)
void setDstAttrib(const UT_StringHolder &val)
UT_StringHolder opinstCombinations_blendattrib(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
constexpr SYS_FORCE_INLINE T & x() noexcept
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override