23 namespace SOP_VolumeCombineEnums
 
   39         using namespace UT::Literal;
 
   63         using namespace UT::Literal;
 
   85         using namespace UT::Literal;
 
  105         using namespace UT::Literal;
 
  106         switch (enum_value) {
 
  145             blendvolume = 
""_UTsh;
 
  151             if (enable != src.
enable) 
return false;
 
  152             if (combine != src.
combine) 
return false;
 
  153             if (adjust != src.
adjust) 
return false;
 
  154             if (srcvolume != src.
srcvolume) 
return false;
 
  156             if (
add != src.
add) 
return false;
 
  176         for (
int i = 0; i < list.
entries(); i++)
 
  182             buf.
appendSprintf(
"%s", (list(i).enable) ? 
"true" : 
"false");
 
  212         myDstVolume = 
""_UTsh;
 
  213         myCombinations.setSize(1);
 
  215         myDoThreshold = 
false;
 
  217         myDoClampMin = 
false;
 
  219         myDoClampMax = 
false;
 
  221         myCreateMissing = 
true;
 
  222         myForceScalar = 
false;
 
  223         myDeleteSource = 
false;
 
  224         myErrorMissing = 
true;
 
  237         if (myDstVolume != src.myDstVolume) 
return false;
 
  238         if (myCombinations != src.myCombinations) 
return false;
 
  239         if (myPostScale != src.myPostScale) 
return false;
 
  240         if (myDoThreshold != src.myDoThreshold) 
return false;
 
  241         if (myThreshold != src.myThreshold) 
return false;
 
  242         if (myDoClampMin != src.myDoClampMin) 
return false;
 
  243         if (myClampMin != src.myClampMin) 
return false;
 
  244         if (myDoClampMax != src.myDoClampMax) 
return false;
 
  245         if (myClampMax != src.myClampMax) 
return false;
 
  246         if (myCreateMissing != src.myCreateMissing) 
return false;
 
  247         if (myForceScalar != src.myForceScalar) 
return false;
 
  248         if (myDeleteSource != src.myDeleteSource) 
return false;
 
  249         if (myErrorMissing != src.myErrorMissing) 
return false;
 
  269         myDstVolume = 
""_UTsh;
 
  271             graph->
evalOpParm(myDstVolume, nodeidx, 
"dstvolume", time, graph->
isDirect()?
nullptr:depnode);
 
  275             graph->
evalOpParm(length, nodeidx, 
"numcombines", time, graph->
isDirect()?
nullptr:depnode);
 
  276             if (length < 0) length = 0;
 
  277             myCombinations.setSize(length);
 
  284                 auto && _curentry = myCombinations(i);
 
  286                 _curentry.enable = 
true;
 
  288                     graph->
evalOpParmInst(_curentry.enable, nodeidx, 
"enable#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
 
  289                 _curentry.combine = 1;
 
  290                 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
 
  291                     graph->
evalOpParmInst(_curentry.combine, nodeidx, 
"combine#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
 
  292                 _curentry.adjust = 0;
 
  293                 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
 
  294                     graph->
evalOpParmInst(_curentry.adjust, nodeidx, 
"adjust#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
 
  295                 _curentry.srcvolume = 
""_UTsh;
 
  296                 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
 
  297                     graph->
evalOpParmInst(_curentry.srcvolume, nodeidx, 
"srcvolume#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
 
  299                 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.adjust==0)))) ) )
 
  300                     graph->
evalOpParmInst(_curentry.scale, nodeidx, 
"scale#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
 
  302                 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.adjust==0))||((_curentry.adjust==1)))) ) )
 
  303                     graph->
evalOpParmInst(_curentry.add, nodeidx, 
"add#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
 
  304                 _curentry.process = 0;
 
  305                 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.adjust==0))||((_curentry.adjust==1))||((_curentry.adjust==2)))) ) )
 
  306                     graph->
evalOpParmInst(_curentry.process, nodeidx, 
"process#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
 
  308                 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
 
  309                     graph->
evalOpParmInst(_curentry.blend, nodeidx, 
"blend#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
 
  310                 _curentry.doblendvolume = 0;
 
  311                 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
 
  312                     graph->
evalOpParmInst(_curentry.doblendvolume, nodeidx, 
"doblendvolume#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
 
  313                 _curentry.blendvolume = 
""_UTsh;
 
  314                 if (
true && ( (
true&&!(((_curentry.doblendvolume==0))||((_curentry.enable==0)))) ) )
 
  315                     graph->
evalOpParmInst(_curentry.blendvolume, nodeidx, 
"blendvolume#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
 
  320             myCombinations.clear();
 
  323             graph->
evalOpParm(myPostScale, nodeidx, 
"postscale", time, graph->
isDirect()?
nullptr:depnode);
 
  324         myDoThreshold = 
false;
 
  326             graph->
evalOpParm(myDoThreshold, nodeidx, 
"dothreshold", time, graph->
isDirect()?
nullptr:depnode);
 
  328         if (
true && ( (
true&&!(((getDoThreshold()==0)))) ) )
 
  329             graph->
evalOpParm(myThreshold, nodeidx, 
"threshold", time, graph->
isDirect()?
nullptr:depnode);
 
  330         myDoClampMin = 
false;
 
  332             graph->
evalOpParm(myDoClampMin, nodeidx, 
"doclampmin", time, graph->
isDirect()?
nullptr:depnode);
 
  334         if (
true && ( (
true&&!(((getDoClampMin()==0)&&(getDoThreshold()==0)))) ) )
 
  335             graph->
evalOpParm(myClampMin, nodeidx, 
"clampmin", time, graph->
isDirect()?
nullptr:depnode);
 
  336         myDoClampMax = 
false;
 
  338             graph->
evalOpParm(myDoClampMax, nodeidx, 
"doclampmax", time, graph->
isDirect()?
nullptr:depnode);
 
  340         if (
true && ( (
true&&!(((getDoClampMax()==0)&&(getDoThreshold()==0)))) ) )
 
  341             graph->
evalOpParm(myClampMax, nodeidx, 
"clampmax", time, graph->
isDirect()?
nullptr:depnode);
 
  342         myCreateMissing = 
true;
 
  344             graph->
evalOpParm(myCreateMissing, nodeidx, 
"createmissing", time, graph->
isDirect()?
nullptr:depnode);
 
  345         myForceScalar = 
false;
 
  346         if (
true && ( (
true&&!(((getCreateMissing()==0)))) ) )
 
  347             graph->
evalOpParm(myForceScalar, nodeidx, 
"forcescalar", time, graph->
isDirect()?
nullptr:depnode);
 
  348         myDeleteSource = 
false;
 
  350             graph->
evalOpParm(myDeleteSource, nodeidx, 
"deletesource", time, graph->
isDirect()?
nullptr:depnode);
 
  351         myErrorMissing = 
true;
 
  353             graph->
evalOpParm(myErrorMissing, nodeidx, 
"errormissing", time, graph->
isDirect()?
nullptr:depnode);
 
  369     template <
typename T>
 
  376         if (idx.
size() != instance.
size()+1)
 
  381                 coerceValue(value, myDstVolume);
 
  385                     coerceValue(value, myCombinations.entries());
 
  386                 else if (instance[0] < myCombinations.entries())
 
  388                     auto && _data = myCombinations(instance[0]);
 
  392                         coerceValue(value, _data.enable);
 
  395                         coerceValue(value, _data.combine);
 
  398                         coerceValue(value, _data.adjust);
 
  401                         coerceValue(value, _data.srcvolume);
 
  404                         coerceValue(value, _data.scale);
 
  407                         coerceValue(value, _data.add);
 
  410                         coerceValue(value, _data.process);
 
  413                         coerceValue(value, _data.blend);
 
  416                         coerceValue(value, _data.doblendvolume);
 
  419                         coerceValue(value, _data.blendvolume);
 
  426                 coerceValue(value, myPostScale);
 
  429                 coerceValue(value, myDoThreshold);
 
  432                 coerceValue(value, myThreshold);
 
  435                 coerceValue(value, myDoClampMin);
 
  438                 coerceValue(value, myClampMin);
 
  441                 coerceValue(value, myDoClampMax);
 
  444                 coerceValue(value, myClampMax);
 
  447                 coerceValue(value, myCreateMissing);
 
  450                 coerceValue(value, myForceScalar);
 
  453                 coerceValue(value, myDeleteSource);
 
  456                 coerceValue(value, myErrorMissing);
 
  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     { doGetParmValue(idx, instance, value); }
 
  484     { doGetParmValue(idx, instance, value); }
 
  486     { doGetParmValue(idx, instance, value); }
 
  488     { doGetParmValue(idx, instance, value); }
 
  490     { doGetParmValue(idx, instance, value); }
 
  492     { doGetParmValue(idx, instance, value); }
 
  494     template <
typename T>
 
  501         if (idx.
size() != instance.
size()+1)
 
  506                 coerceValue(myDstVolume, ( ( value ) ));
 
  512                     coerceValue(newsize, value);
 
  513                     if (newsize < 0) newsize = 0;
 
  514                     myCombinations.setSize(newsize);
 
  520                     myCombinations.setSizeIfNeeded(instance[0]+1);
 
  521                     auto && _data = myCombinations(instance[0]);
 
  525                         coerceValue(_data.enable, value);
 
  528                         coerceValue(_data.combine, value);
 
  531                         coerceValue(_data.adjust, value);
 
  534                         coerceValue(_data.srcvolume, value);
 
  537                         coerceValue(_data.scale, value);
 
  540                         coerceValue(_data.add, value);
 
  543                         coerceValue(_data.process, value);
 
  546                         coerceValue(_data.blend, value);
 
  549                         coerceValue(_data.doblendvolume, value);
 
  552                         coerceValue(_data.blendvolume, value);
 
  559                 coerceValue(myPostScale, ( ( value ) ));
 
  562                 coerceValue(myDoThreshold, ( ( value ) ));
 
  565                 coerceValue(myThreshold, ( ( value ) ));
 
  568                 coerceValue(myDoClampMin, ( ( value ) ));
 
  571                 coerceValue(myClampMin, ( ( value ) ));
 
  574                 coerceValue(myDoClampMax, ( ( value ) ));
 
  577                 coerceValue(myClampMax, ( ( value ) ));
 
  580                 coerceValue(myCreateMissing, ( ( value ) ));
 
  583                 coerceValue(myForceScalar, ( ( value ) ));
 
  586                 coerceValue(myDeleteSource, ( ( value ) ));
 
  589                 coerceValue(myErrorMissing, ( ( 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); }
 
  612     { doSetParmValue(idx, instance, value); }
 
  614     { doSetParmValue(idx, instance, value); }
 
  616     { doSetParmValue(idx, instance, value); }
 
  634         if (fieldnum.
size() < 1)
 
  641                 if (fieldnum.
size() == 1)
 
  642                     return "numcombines";
 
  662                         return "doblendvolume#";
 
  664                         return "blendvolume#";
 
  671                 return "dothreshold";
 
  683                 return "createmissing";
 
  685                 return "forcescalar";
 
  687                 return "deletesource";
 
  689                 return "errormissing";
 
  697         if (fieldnum.
size() < 1)
 
  698             return PARM_UNSUPPORTED;
 
  704                 if (fieldnum.
size() == 1)
 
  705                     return PARM_MULTIPARM;
 
  730                 return PARM_UNSUPPORTED;
 
  755         return PARM_UNSUPPORTED;
 
  791         loadData(is, rampdata);
 
  809                 int             typelen = colon - data.
buffer();
 
  823     { 
int64 iv = 
v; UTwrite(os, &iv); }
 
  825     { UTwrite<fpreal64>(os, &
v); }
 
  827     { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
 
  829     { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
 
  830       UTwrite<fpreal64>(os, &v.
z()); }
 
  832     { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
 
  833       UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
 
  845         if (s) s->save(ostr);
 
  847         saveData(os, result);
 
  854             ostr << s->getDataTypeToken();
 
  859         saveData(os, result);
 
  863     void         save(std::ostream &os)
 const 
  867         saveData(os, myDstVolume);
 
  870             UTwrite(os, &length);
 
  873                 auto && _curentry = myCombinations(i);
 
  875                 saveData(os, _curentry.enable);
 
  876                 saveData(os, _curentry.combine);
 
  877                 saveData(os, _curentry.adjust);
 
  878                 saveData(os, _curentry.srcvolume);
 
  879                 saveData(os, _curentry.scale);
 
  880                 saveData(os, _curentry.add);
 
  881                 saveData(os, _curentry.process);
 
  882                 saveData(os, _curentry.blend);
 
  883                 saveData(os, _curentry.doblendvolume);
 
  884                 saveData(os, _curentry.blendvolume);
 
  888         saveData(os, myPostScale);
 
  889         saveData(os, myDoThreshold);
 
  890         saveData(os, myThreshold);
 
  891         saveData(os, myDoClampMin);
 
  892         saveData(os, myClampMin);
 
  893         saveData(os, myDoClampMax);
 
  894         saveData(os, myClampMax);
 
  895         saveData(os, myCreateMissing);
 
  896         saveData(os, myForceScalar);
 
  897         saveData(os, myDeleteSource);
 
  898         saveData(os, myErrorMissing);
 
  911         loadData(is, myDstVolume);
 
  915             myCombinations.setSize(length);
 
  918                 auto && _curentry = myCombinations(i);
 
  920                 loadData(is, _curentry.enable);
 
  921                 loadData(is, _curentry.combine);
 
  922                 loadData(is, _curentry.adjust);
 
  923                 loadData(is, _curentry.srcvolume);
 
  924                 loadData(is, _curentry.scale);
 
  925                 loadData(is, _curentry.add);
 
  926                 loadData(is, _curentry.process);
 
  927                 loadData(is, _curentry.blend);
 
  928                 loadData(is, _curentry.doblendvolume);
 
  929                 loadData(is, _curentry.blendvolume);
 
  933         loadData(is, myPostScale);
 
  934         loadData(is, myDoThreshold);
 
  935         loadData(is, myThreshold);
 
  936         loadData(is, myDoClampMin);
 
  937         loadData(is, myClampMin);
 
  938         loadData(is, myDoClampMax);
 
  939         loadData(is, myClampMax);
 
  940         loadData(is, myCreateMissing);
 
  941         loadData(is, myForceScalar);
 
  942         loadData(is, myDeleteSource);
 
  943         loadData(is, myErrorMissing);
 
  953         if (!thissop) 
return getDstVolume();
 
  955         OP_Utils::evalOpParm(result, thissop, 
"dstvolume", cookparms.
getCookTime(), 0);
 
  963         if (!thissop) 
return getCombinations().entries();
 
  965         OP_Utils::evalOpParm(result, thissop, 
"numcombines", cookparms.
getCookTime(), 0);
 
  969     { 
return opinstCombinations_enable(cookparms, &_idx); }
 
  973         if (!thissop) 
return (myCombinations(_idx[0]).enable);
 
  975         _parmidx[1-1] = _idx[1-1] + 1;
 
  978         OP_Utils::evalOpParmInst(result, thissop, 
"enable#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
 
  982     { 
return opinstCombinations_combine(cookparms, &_idx); }
 
  986         if (!thissop) 
return (myCombinations(_idx[0]).combine);
 
  988         _parmidx[1-1] = _idx[1-1] + 1;
 
  991         OP_Utils::evalOpParmInst(result, thissop, 
"combine#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
 
  995     { 
return opinstCombinations_adjust(cookparms, &_idx); }
 
  999         if (!thissop) 
return (myCombinations(_idx[0]).adjust);
 
 1001         _parmidx[1-1] = _idx[1-1] + 1;
 
 1004         OP_Utils::evalOpParmInst(result, thissop, 
"adjust#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
 
 1008     { 
return opinstCombinations_srcvolume(cookparms, &_idx); }
 
 1012         if (!thissop) 
return (myCombinations(_idx[0]).srcvolume);
 
 1014         _parmidx[1-1] = _idx[1-1] + 1;
 
 1017         OP_Utils::evalOpParmInst(result, thissop, 
"srcvolume#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
 
 1021     { 
return opinstCombinations_scale(cookparms, &_idx); }
 
 1025         if (!thissop) 
return (myCombinations(_idx[0]).
scale);
 
 1027         _parmidx[1-1] = _idx[1-1] + 1;
 
 1030         OP_Utils::evalOpParmInst(result, thissop, 
"scale#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
 
 1034     { 
return opinstCombinations_add(cookparms, &_idx); }
 
 1038         if (!thissop) 
return (myCombinations(_idx[0]).
add);
 
 1040         _parmidx[1-1] = _idx[1-1] + 1;
 
 1043         OP_Utils::evalOpParmInst(result, thissop, 
"add#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
 
 1047     { 
return opinstCombinations_process(cookparms, &_idx); }
 
 1051         if (!thissop) 
return (myCombinations(_idx[0]).
process);
 
 1053         _parmidx[1-1] = _idx[1-1] + 1;
 
 1056         OP_Utils::evalOpParmInst(result, thissop, 
"process#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
 
 1060     { 
return opinstCombinations_blend(cookparms, &_idx); }
 
 1064         if (!thissop) 
return (myCombinations(_idx[0]).
blend);
 
 1066         _parmidx[1-1] = _idx[1-1] + 1;
 
 1069         OP_Utils::evalOpParmInst(result, thissop, 
"blend#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
 
 1073     { 
return opinstCombinations_doblendvolume(cookparms, &_idx); }
 
 1077         if (!thissop) 
return (myCombinations(_idx[0]).doblendvolume);
 
 1079         _parmidx[1-1] = _idx[1-1] + 1;
 
 1082         OP_Utils::evalOpParmInst(result, thissop, 
"doblendvolume#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
 
 1086     { 
return opinstCombinations_blendvolume(cookparms, &_idx); }
 
 1090         if (!thissop) 
return (myCombinations(_idx[0]).blendvolume);
 
 1092         _parmidx[1-1] = _idx[1-1] + 1;
 
 1095         OP_Utils::evalOpParmInst(result, thissop, 
"blendvolume#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
 
 1104         if (!thissop) 
return getPostScale();
 
 1106         OP_Utils::evalOpParm(result, thissop, 
"postscale", cookparms.
getCookTime(), 0);
 
 1114         if (!thissop) 
return getDoThreshold();
 
 1116         OP_Utils::evalOpParm(result, thissop, 
"dothreshold", cookparms.
getCookTime(), 0);
 
 1124         if (!thissop) 
return getThreshold();
 
 1126         OP_Utils::evalOpParm(result, thissop, 
"threshold", cookparms.
getCookTime(), 0);
 
 1134         if (!thissop) 
return getDoClampMin();
 
 1136         OP_Utils::evalOpParm(result, thissop, 
"doclampmin", cookparms.
getCookTime(), 0);
 
 1144         if (!thissop) 
return getClampMin();
 
 1146         OP_Utils::evalOpParm(result, thissop, 
"clampmin", cookparms.
getCookTime(), 0);
 
 1154         if (!thissop) 
return getDoClampMax();
 
 1156         OP_Utils::evalOpParm(result, thissop, 
"doclampmax", cookparms.
getCookTime(), 0);
 
 1164         if (!thissop) 
return getClampMax();
 
 1166         OP_Utils::evalOpParm(result, thissop, 
"clampmax", cookparms.
getCookTime(), 0);
 
 1174         if (!thissop) 
return getCreateMissing();
 
 1176         OP_Utils::evalOpParm(result, thissop, 
"createmissing", cookparms.
getCookTime(), 0);
 
 1184         if (!thissop) 
return getForceScalar();
 
 1186         OP_Utils::evalOpParm(result, thissop, 
"forcescalar", cookparms.
getCookTime(), 0);
 
 1194         if (!thissop) 
return getDeleteSource();
 
 1196         OP_Utils::evalOpParm(result, thissop, 
"deletesource", cookparms.
getCookTime(), 0);
 
 1204         if (!thissop) 
return getErrorMissing();
 
 1206         OP_Utils::evalOpParm(result, thissop, 
"errormissing", cookparms.
getCookTime(), 0);
 
 1220     bool myCreateMissing;
 
 1222     bool myDeleteSource;
 
 1223     bool myErrorMissing;
 
void save(std::ostream &os) const 
 
static void loadData(UT_IStream &is, UT_Vector3D &v)
 
void setDoClampMin(bool val)
 
static void loadData(UT_IStream &is, UT_Matrix3D &v)
 
bool operator==(const SOP_VolumeCombineParms &src) const 
 
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
 
GLenum GLuint GLenum GLsizei const GLchar * buf
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
 
bool opDoThreshold(const SOP_NodeVerb::CookParms &cookparms) const 
 
static void saveData(std::ostream &os, int64 v)
 
fpreal64 opThreshold(const SOP_NodeVerb::CookParms &cookparms) const 
 
fpreal64 opCombinations_add(const SOP_NodeVerb::CookParms &cookparms, int _idx) const 
 
bool opCombinations_enable(const SOP_NodeVerb::CookParms &cookparms, int _idx) const 
 
SOP_Node * getNode() const 
 
static void saveData(std::ostream &os, fpreal64 v)
 
static void saveData(std::ostream &os, UT_Matrix3D v)
 
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
 
bool opDeleteSource(const SOP_NodeVerb::CookParms &cookparms) const 
 
UT_StringHolder opCombinations_srcvolume(const SOP_NodeVerb::CookParms &cookparms, int _idx) const 
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
 
UT_StringHolder createString(const UT_Array< Combinations > &list) const 
 
exint bread(int32 *buffer, exint asize=1)
 
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
 
GT_API const UT_StringHolder time
 
constexpr SYS_FORCE_INLINE T & y() noexcept
 
bool getDeleteSource() const 
 
SYS_FORCE_INLINE UT_StringHolder getToken(Combine enum_value)
 
static void loadData(UT_IStream &is, UT_Vector4I &v)
 
GLsizei const GLfloat * value
 
fpreal64 getClampMin() const 
 
bool getCreateMissing() const 
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
 
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const 
 
const OP_Context & context() const 
 
fpreal64 opCombinations_scale(const SOP_NodeVerb::CookParms &cookparms, int _idx) const 
 
static void loadData(UT_IStream &is, UT_Vector3I &v)
 
fpreal64 getPostScale() const 
 
constexpr SYS_FORCE_INLINE T & z() noexcept
 
fpreal64 opinstCombinations_blend(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const 
 
SYS_FORCE_INLINE const char * buffer() const 
 
static void saveData(std::ostream &os, UT_Vector3D v)
 
static void loadData(UT_IStream &is, UT_Vector2D &v)
 
GLuint GLsizei GLsizei * length
 
int64 opCombinations_doblendvolume(const SOP_NodeVerb::CookParms &cookparms, int _idx) const 
 
void setCreateMissing(bool val)
 
An output stream object that owns its own string buffer storage. 
 
bool load(UT_IStream &is)
 
int64 opCombinations_process(const SOP_NodeVerb::CookParms &cookparms, int _idx) const 
 
void setClampMax(fpreal64 val)
 
bool getDoClampMax() const 
 
static void loadData(UT_IStream &is, bool &v)
 
**But if you need a result
 
void setDeleteSource(bool val)
 
fpreal64 getThreshold() const 
 
void setDoClampMax(bool val)
 
exint opCombinations(const SOP_NodeVerb::CookParms &cookparms) const 
 
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
 
bool opCreateMissing(const SOP_NodeVerb::CookParms &cookparms) const 
 
bool getDoThreshold() const 
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) 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 saveData(std::ostream &os, bool v)
 
static void loadData(UT_IStream &is, UT_Vector4D &v)
 
bool operator==(const Combinations &src) const 
 
bool opinstCombinations_enable(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const 
 
constexpr SYS_FORCE_INLINE T & x() noexcept
 
static void loadData(UT_IStream &is, UT_Matrix4D &v)
 
static void loadData(UT_IStream &is, fpreal64 &v)
 
int64 opinstCombinations_process(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const 
 
GLuint GLsizei const GLuint const GLintptr * offsets
 
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
 
constexpr SYS_FORCE_INLINE T & x() noexcept
 
exint getNestNumParms(TempIndex idx) const override
 
int64 opinstCombinations_doblendvolume(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const 
 
bool operator!=(const SOP_VolumeCombineParms &src) const 
 
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
 
void setDstVolume(const UT_StringHolder &val)
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
 
fpreal64 opPostScale(const SOP_NodeVerb::CookParms &cookparms) const 
 
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
 
int64 opCombinations_combine(const SOP_NodeVerb::CookParms &cookparms, int _idx) const 
 
static void saveData(std::ostream &os, UT_Matrix2D v)
 
bool opForceScalar(const SOP_NodeVerb::CookParms &cookparms) const 
 
bool opErrorMissing(const SOP_NodeVerb::CookParms &cookparms) const 
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
 
static void saveData(std::ostream &os, PRM_DataItemHandle s)
 
bool getDoClampMin() 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
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
 
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
 
exint read(bool *array, exint sz=1)
 
const OP_GraphProxy * graph() const 
 
fpreal64 opClampMin(const SOP_NodeVerb::CookParms &cookparms) const 
 
UT_StringHolder opinstCombinations_blendvolume(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const 
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
 
ParmType getNestParmType(TempIndex fieldnum) const override
 
virtual void evalOpParmInst(int64 &v, NodeIdx node, const char *parmname, const int *inst, const int *offsets, fpreal time, DEP_MicroNode *depnode, int nestlevel=1) const =0
 
void setCombinations(const UT_Array< Combinations > &val)
 
static void loadData(UT_IStream &is, int64 &v)
 
fpreal64 opClampMax(const SOP_NodeVerb::CookParms &cookparms) const 
 
UT_StringHolder opCombinations_blendvolume(const SOP_NodeVerb::CookParms &cookparms, int _idx) const 
 
bool getErrorMissing() const 
 
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
 
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
 
void setPostScale(fpreal64 val)
 
SYS_FORCE_INLINE void strcat(const char *src)
 
void saveBinary(std::ostream &os) const 
Save string to binary stream. 
 
GT_API const UT_StringHolder version
 
fpreal64 getClampMax() const 
 
UT_StringHolder opDstVolume(const SOP_NodeVerb::CookParms &cookparms) const 
 
exint entries() const 
Alias of size(). size() is preferred. 
 
int64 opinstCombinations_combine(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const 
 
void setForceScalar(bool val)
 
bool operator!=(const Combinations &src) const 
 
bool opDoClampMin(const SOP_NodeVerb::CookParms &cookparms) const 
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
 
static void saveData(std::ostream &os, UT_StringHolder s)
 
int int appendSprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
 
void setThreshold(fpreal64 val)
 
static void saveData(std::ostream &os, UT_Vector2D v)
 
static void loadData(UT_IStream &is, UT_Vector2I &v)
 
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
 
void setClampMin(fpreal64 val)
 
DEP_MicroNode * depnode() const 
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
 
LeafData & operator=(const LeafData &)=delete
 
void setErrorMissing(bool val)
 
Utility class for containing a color ramp. 
 
static void saveData(std::ostream &os, UT_Vector4D v)
 
UT_StringHolder srcvolume
 
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
 
int64 opCombinations_adjust(const SOP_NodeVerb::CookParms &cookparms, int _idx) const 
 
constexpr SYS_FORCE_INLINE T & w() noexcept
 
SYS_FORCE_INLINE void append(char character)
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
 
int64 opinstCombinations_adjust(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const 
 
virtual UT_StringHolder baseGetSignature() const 
 
bool process(T &func, UT_WorkBuffer &fullpath, exint fullpath_len, const UT_StringArray &paths, const UT_Array< FS_Stat > &stats)
Utility function to process the contents of the traverse() function. 
 
fpreal getCookTime() const 
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
 
const UT_StringHolder & getDstVolume() const 
 
const char * findChar(int c) const 
 
bool getForceScalar() const 
 
UT_StringHolder opinstCombinations_srcvolume(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const 
 
void copyFrom(const OP_NodeParms *src) override
 
ImageBuf OIIO_API add(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
 
static void saveData(std::ostream &os, UT_Matrix4D v)
 
bool isParmColorRamp(exint idx) const override
 
static void loadData(UT_IStream &is, UT_Matrix2D &v)
 
constexpr SYS_FORCE_INLINE T & y() noexcept
 
void loadFromOpSubclass(const LoadParms &loadparms) override
 
fpreal64 opinstCombinations_scale(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const 
 
UT_StringHolder blendvolume
 
bool opDoClampMax(const SOP_NodeVerb::CookParms &cookparms) const 
 
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
 
const char * getNestParmName(TempIndex fieldnum) const override
 
static void loadData(UT_IStream &is, UT_StringHolder &v)
 
virtual bool isDirect() const =0
Direct proxies mirror actual nodes: 
 
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
 
fpreal64 opinstCombinations_add(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const 
 
constexpr SYS_FORCE_INLINE T & y() noexcept
 
fpreal64 opCombinations_blend(const SOP_NodeVerb::CookParms &cookparms, int _idx) const 
 
SYS_FORCE_INLINE bool isstring() const 
 
void setDoThreshold(bool val)
 
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
 
const UT_Array< Combinations > & getCombinations() const 
 
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const 
 
constexpr SYS_FORCE_INLINE T & x() noexcept