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;
157 if (process != src.
process)
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;
266 myDstVolume =
""_UTsh;
268 graph->
evalOpParm(myDstVolume, nodeidx,
"dstvolume", time, 0);
272 graph->
evalOpParm(length, nodeidx,
"numcombines", time, 0);
273 if (length < 0) length = 0;
274 myCombinations.setSize(length);
281 auto && _curentry = myCombinations(i);
283 _curentry.enable =
true;
285 graph->
evalOpParmInst(_curentry.enable, nodeidx,
"enable#", parmidx, offsets, time, 0, 2-1);
286 _curentry.combine = 1;
287 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
288 graph->
evalOpParmInst(_curentry.combine, nodeidx,
"combine#", parmidx, offsets, time, 0, 2-1);
289 _curentry.adjust = 0;
290 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
291 graph->
evalOpParmInst(_curentry.adjust, nodeidx,
"adjust#", parmidx, offsets, time, 0, 2-1);
292 _curentry.srcvolume =
""_UTsh;
293 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
294 graph->
evalOpParmInst(_curentry.srcvolume, nodeidx,
"srcvolume#", parmidx, offsets, time, 0, 2-1);
296 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.adjust==0)))) ) )
297 graph->
evalOpParmInst(_curentry.scale, nodeidx,
"scale#", parmidx, offsets, time, 0, 2-1);
299 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.adjust==0))||((_curentry.adjust==1)))) ) )
300 graph->
evalOpParmInst(_curentry.add, nodeidx,
"add#", parmidx, offsets, time, 0, 2-1);
301 _curentry.process = 0;
302 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.adjust==0))||((_curentry.adjust==1))||((_curentry.adjust==2)))) ) )
303 graph->
evalOpParmInst(_curentry.process, nodeidx,
"process#", parmidx, offsets, time, 0, 2-1);
305 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
306 graph->
evalOpParmInst(_curentry.blend, nodeidx,
"blend#", parmidx, offsets, time, 0, 2-1);
307 _curentry.doblendvolume = 0;
308 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
309 graph->
evalOpParmInst(_curentry.doblendvolume, nodeidx,
"doblendvolume#", parmidx, offsets, time, 0, 2-1);
310 _curentry.blendvolume =
""_UTsh;
311 if (
true && ( (
true&&!(((_curentry.doblendvolume==0))||((_curentry.enable==0)))) ) )
312 graph->
evalOpParmInst(_curentry.blendvolume, nodeidx,
"blendvolume#", parmidx, offsets, time, 0, 2-1);
317 myCombinations.clear();
320 graph->
evalOpParm(myPostScale, nodeidx,
"postscale", time, 0);
321 myDoThreshold =
false;
323 graph->
evalOpParm(myDoThreshold, nodeidx,
"dothreshold", time, 0);
325 if (
true && ( (
true&&!(((getDoThreshold()==0)))) ) )
326 graph->
evalOpParm(myThreshold, nodeidx,
"threshold", time, 0);
327 myDoClampMin =
false;
329 graph->
evalOpParm(myDoClampMin, nodeidx,
"doclampmin", time, 0);
331 if (
true && ( (
true&&!(((getDoClampMin()==0)&&(getDoThreshold()==0)))) ) )
332 graph->
evalOpParm(myClampMin, nodeidx,
"clampmin", time, 0);
333 myDoClampMax =
false;
335 graph->
evalOpParm(myDoClampMax, nodeidx,
"doclampmax", time, 0);
337 if (
true && ( (
true&&!(((getDoClampMax()==0)&&(getDoThreshold()==0)))) ) )
338 graph->
evalOpParm(myClampMax, nodeidx,
"clampmax", time, 0);
339 myCreateMissing =
true;
341 graph->
evalOpParm(myCreateMissing, nodeidx,
"createmissing", time, 0);
342 myForceScalar =
false;
343 if (
true && ( (
true&&!(((getCreateMissing()==0)))) ) )
344 graph->
evalOpParm(myForceScalar, nodeidx,
"forcescalar", time, 0);
345 myDeleteSource =
false;
347 graph->
evalOpParm(myDeleteSource, nodeidx,
"deletesource", time, 0);
348 myErrorMissing =
true;
350 graph->
evalOpParm(myErrorMissing, nodeidx,
"errormissing", time, 0);
366 template <
typename T>
373 if (idx.
size() != instance.
size()+1)
378 coerceValue(value, myDstVolume);
382 coerceValue(value, myCombinations.entries());
383 else if (instance[0] < myCombinations.entries())
385 auto && _data = myCombinations(instance[0]);
389 coerceValue(value, _data.enable);
392 coerceValue(value, _data.combine);
395 coerceValue(value, _data.adjust);
398 coerceValue(value, _data.srcvolume);
401 coerceValue(value, _data.scale);
404 coerceValue(value, _data.add);
407 coerceValue(value, _data.process);
410 coerceValue(value, _data.blend);
413 coerceValue(value, _data.doblendvolume);
416 coerceValue(value, _data.blendvolume);
423 coerceValue(value, myPostScale);
426 coerceValue(value, myDoThreshold);
429 coerceValue(value, myThreshold);
432 coerceValue(value, myDoClampMin);
435 coerceValue(value, myClampMin);
438 coerceValue(value, myDoClampMax);
441 coerceValue(value, myClampMax);
444 coerceValue(value, myCreateMissing);
447 coerceValue(value, myForceScalar);
450 coerceValue(value, myDeleteSource);
453 coerceValue(value, myErrorMissing);
469 { doGetParmValue(idx, instance, value); }
471 { doGetParmValue(idx, instance, value); }
473 { doGetParmValue(idx, instance, value); }
475 { doGetParmValue(idx, instance, value); }
477 { doGetParmValue(idx, instance, value); }
479 { doGetParmValue(idx, instance, value); }
481 { doGetParmValue(idx, instance, value); }
483 { doGetParmValue(idx, instance, value); }
485 { doGetParmValue(idx, instance, value); }
487 { doGetParmValue(idx, instance, value); }
489 { doGetParmValue(idx, instance, value); }
491 template <
typename T>
498 if (idx.
size() != instance.
size()+1)
503 coerceValue(myDstVolume, ( ( value ) ));
509 coerceValue(newsize, value);
510 if (newsize < 0) newsize = 0;
511 myCombinations.setSize(newsize);
517 myCombinations.setSizeIfNeeded(instance[0]+1);
518 auto && _data = myCombinations(instance[0]);
522 coerceValue(_data.enable, value);
525 coerceValue(_data.combine, value);
528 coerceValue(_data.adjust, value);
531 coerceValue(_data.srcvolume, value);
534 coerceValue(_data.scale, value);
537 coerceValue(_data.add, value);
540 coerceValue(_data.process, value);
543 coerceValue(_data.blend, value);
546 coerceValue(_data.doblendvolume, value);
549 coerceValue(_data.blendvolume, value);
556 coerceValue(myPostScale, ( ( value ) ));
559 coerceValue(myDoThreshold, ( ( value ) ));
562 coerceValue(myThreshold, ( ( value ) ));
565 coerceValue(myDoClampMin, ( ( value ) ));
568 coerceValue(myClampMin, ( ( value ) ));
571 coerceValue(myDoClampMax, ( ( value ) ));
574 coerceValue(myClampMax, ( ( value ) ));
577 coerceValue(myCreateMissing, ( ( value ) ));
580 coerceValue(myForceScalar, ( ( value ) ));
583 coerceValue(myDeleteSource, ( ( value ) ));
586 coerceValue(myErrorMissing, ( ( value ) ));
593 { doSetParmValue(idx, instance, value); }
595 { doSetParmValue(idx, instance, value); }
597 { doSetParmValue(idx, instance, value); }
599 { doSetParmValue(idx, instance, value); }
601 { doSetParmValue(idx, instance, value); }
603 { doSetParmValue(idx, instance, value); }
605 { doSetParmValue(idx, instance, value); }
607 { doSetParmValue(idx, instance, value); }
609 { doSetParmValue(idx, instance, value); }
611 { doSetParmValue(idx, instance, value); }
613 { doSetParmValue(idx, instance, value); }
631 if (fieldnum.
size() < 1)
638 if (fieldnum.
size() == 1)
639 return "numcombines";
659 return "doblendvolume#";
661 return "blendvolume#";
668 return "dothreshold";
680 return "createmissing";
682 return "forcescalar";
684 return "deletesource";
686 return "errormissing";
694 if (fieldnum.
size() < 1)
695 return PARM_UNSUPPORTED;
701 if (fieldnum.
size() == 1)
702 return PARM_MULTIPARM;
727 return PARM_UNSUPPORTED;
752 return PARM_UNSUPPORTED;
788 loadData(is, rampdata);
806 int typelen = colon - data.
buffer();
820 {
int64 iv =
v; UTwrite(os, &iv); }
822 { UTwrite<fpreal64>(os, &
v); }
824 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
826 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
827 UTwrite<fpreal64>(os, &v.
z()); }
829 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
830 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
842 if (s) s->save(ostr);
844 saveData(os, result);
851 ostr << s->getDataTypeToken();
856 saveData(os, result);
860 void save(std::ostream &os)
const
864 saveData(os, myDstVolume);
867 UTwrite(os, &length);
870 auto && _curentry = myCombinations(i);
872 saveData(os, _curentry.enable);
873 saveData(os, _curentry.combine);
874 saveData(os, _curentry.adjust);
875 saveData(os, _curentry.srcvolume);
876 saveData(os, _curentry.scale);
877 saveData(os, _curentry.add);
878 saveData(os, _curentry.process);
879 saveData(os, _curentry.blend);
880 saveData(os, _curentry.doblendvolume);
881 saveData(os, _curentry.blendvolume);
885 saveData(os, myPostScale);
886 saveData(os, myDoThreshold);
887 saveData(os, myThreshold);
888 saveData(os, myDoClampMin);
889 saveData(os, myClampMin);
890 saveData(os, myDoClampMax);
891 saveData(os, myClampMax);
892 saveData(os, myCreateMissing);
893 saveData(os, myForceScalar);
894 saveData(os, myDeleteSource);
895 saveData(os, myErrorMissing);
908 loadData(is, myDstVolume);
912 myCombinations.setSize(length);
915 auto && _curentry = myCombinations(i);
917 loadData(is, _curentry.enable);
918 loadData(is, _curentry.combine);
919 loadData(is, _curentry.adjust);
920 loadData(is, _curentry.srcvolume);
921 loadData(is, _curentry.scale);
922 loadData(is, _curentry.add);
923 loadData(is, _curentry.process);
924 loadData(is, _curentry.blend);
925 loadData(is, _curentry.doblendvolume);
926 loadData(is, _curentry.blendvolume);
930 loadData(is, myPostScale);
931 loadData(is, myDoThreshold);
932 loadData(is, myThreshold);
933 loadData(is, myDoClampMin);
934 loadData(is, myClampMin);
935 loadData(is, myDoClampMax);
936 loadData(is, myClampMax);
937 loadData(is, myCreateMissing);
938 loadData(is, myForceScalar);
939 loadData(is, myDeleteSource);
940 loadData(is, myErrorMissing);
950 if (!thissop)
return getDstVolume();
952 OP_Utils::evalOpParm(result, thissop,
"dstvolume", cookparms.
getCookTime(), 0);
960 if (!thissop)
return getCombinations().entries();
962 OP_Utils::evalOpParm(result, thissop,
"numcombines", cookparms.
getCookTime(), 0);
966 {
return opinstCombinations_enable(cookparms, &_idx); }
970 if (!thissop)
return (myCombinations(_idx[0]).enable);
972 _parmidx[1-1] = _idx[1-1] + 1;
975 OP_Utils::evalOpParmInst(result, thissop,
"enable#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
979 {
return opinstCombinations_combine(cookparms, &_idx); }
983 if (!thissop)
return (myCombinations(_idx[0]).combine);
985 _parmidx[1-1] = _idx[1-1] + 1;
988 OP_Utils::evalOpParmInst(result, thissop,
"combine#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
992 {
return opinstCombinations_adjust(cookparms, &_idx); }
996 if (!thissop)
return (myCombinations(_idx[0]).adjust);
998 _parmidx[1-1] = _idx[1-1] + 1;
1001 OP_Utils::evalOpParmInst(result, thissop,
"adjust#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1005 {
return opinstCombinations_srcvolume(cookparms, &_idx); }
1009 if (!thissop)
return (myCombinations(_idx[0]).srcvolume);
1011 _parmidx[1-1] = _idx[1-1] + 1;
1014 OP_Utils::evalOpParmInst(result, thissop,
"srcvolume#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1018 {
return opinstCombinations_scale(cookparms, &_idx); }
1022 if (!thissop)
return (myCombinations(_idx[0]).
scale);
1024 _parmidx[1-1] = _idx[1-1] + 1;
1027 OP_Utils::evalOpParmInst(result, thissop,
"scale#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1031 {
return opinstCombinations_add(cookparms, &_idx); }
1035 if (!thissop)
return (myCombinations(_idx[0]).
add);
1037 _parmidx[1-1] = _idx[1-1] + 1;
1040 OP_Utils::evalOpParmInst(result, thissop,
"add#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1044 {
return opinstCombinations_process(cookparms, &_idx); }
1048 if (!thissop)
return (myCombinations(_idx[0]).process);
1050 _parmidx[1-1] = _idx[1-1] + 1;
1053 OP_Utils::evalOpParmInst(result, thissop,
"process#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1057 {
return opinstCombinations_blend(cookparms, &_idx); }
1061 if (!thissop)
return (myCombinations(_idx[0]).
blend);
1063 _parmidx[1-1] = _idx[1-1] + 1;
1066 OP_Utils::evalOpParmInst(result, thissop,
"blend#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1070 {
return opinstCombinations_doblendvolume(cookparms, &_idx); }
1074 if (!thissop)
return (myCombinations(_idx[0]).doblendvolume);
1076 _parmidx[1-1] = _idx[1-1] + 1;
1079 OP_Utils::evalOpParmInst(result, thissop,
"doblendvolume#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1083 {
return opinstCombinations_blendvolume(cookparms, &_idx); }
1087 if (!thissop)
return (myCombinations(_idx[0]).blendvolume);
1089 _parmidx[1-1] = _idx[1-1] + 1;
1092 OP_Utils::evalOpParmInst(result, thissop,
"blendvolume#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1101 if (!thissop)
return getPostScale();
1103 OP_Utils::evalOpParm(result, thissop,
"postscale", cookparms.
getCookTime(), 0);
1111 if (!thissop)
return getDoThreshold();
1113 OP_Utils::evalOpParm(result, thissop,
"dothreshold", cookparms.
getCookTime(), 0);
1121 if (!thissop)
return getThreshold();
1123 OP_Utils::evalOpParm(result, thissop,
"threshold", cookparms.
getCookTime(), 0);
1131 if (!thissop)
return getDoClampMin();
1133 OP_Utils::evalOpParm(result, thissop,
"doclampmin", cookparms.
getCookTime(), 0);
1141 if (!thissop)
return getClampMin();
1143 OP_Utils::evalOpParm(result, thissop,
"clampmin", cookparms.
getCookTime(), 0);
1151 if (!thissop)
return getDoClampMax();
1153 OP_Utils::evalOpParm(result, thissop,
"doclampmax", cookparms.
getCookTime(), 0);
1161 if (!thissop)
return getClampMax();
1163 OP_Utils::evalOpParm(result, thissop,
"clampmax", cookparms.
getCookTime(), 0);
1171 if (!thissop)
return getCreateMissing();
1173 OP_Utils::evalOpParm(result, thissop,
"createmissing", cookparms.
getCookTime(), 0);
1181 if (!thissop)
return getForceScalar();
1183 OP_Utils::evalOpParm(result, thissop,
"forcescalar", cookparms.
getCookTime(), 0);
1191 if (!thissop)
return getDeleteSource();
1193 OP_Utils::evalOpParm(result, thissop,
"deletesource", cookparms.
getCookTime(), 0);
1201 if (!thissop)
return getErrorMissing();
1203 OP_Utils::evalOpParm(result, thissop,
"errormissing", cookparms.
getCookTime(), 0);
1217 bool myCreateMissing;
1219 bool myDeleteSource;
1220 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)
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
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
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)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
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