23 namespace SOP_VolumeCombineEnums
87 blendvolume =
""_UTsh;
93 if (enable != src.
enable)
return false;
94 if (combine != src.
combine)
return false;
95 if (adjust != src.
adjust)
return false;
96 if (srcvolume != src.
srcvolume)
return false;
98 if (
add != src.
add)
return false;
99 if (process != src.
process)
return false;
118 for (
int i = 0; i < list.
entries(); i++)
124 buf.
appendSprintf(
"%s", (list(i).enable) ?
"true" :
"false");
154 myDstVolume =
""_UTsh;
155 myCombinations.setSize(1);
157 myDoThreshold =
false;
159 myDoClampMin =
false;
161 myDoClampMax =
false;
163 myCreateMissing =
true;
164 myForceScalar =
false;
165 myDeleteSource =
false;
166 myErrorMissing =
true;
179 if (myDstVolume != src.myDstVolume)
return false;
180 if (myCombinations != src.myCombinations)
return false;
181 if (myPostScale != src.myPostScale)
return false;
182 if (myDoThreshold != src.myDoThreshold)
return false;
183 if (myThreshold != src.myThreshold)
return false;
184 if (myDoClampMin != src.myDoClampMin)
return false;
185 if (myClampMin != src.myClampMin)
return false;
186 if (myDoClampMax != src.myDoClampMax)
return false;
187 if (myClampMax != src.myClampMax)
return false;
188 if (myCreateMissing != src.myCreateMissing)
return false;
189 if (myForceScalar != src.myForceScalar)
return false;
190 if (myDeleteSource != src.myDeleteSource)
return false;
191 if (myErrorMissing != src.myErrorMissing)
return false;
208 myDstVolume =
""_UTsh;
210 graph->
evalOpParm(myDstVolume, nodeidx,
"dstvolume", time, 0);
214 graph->
evalOpParm(length, nodeidx,
"numcombines", time, 0);
215 if (length < 0) length = 0;
216 myCombinations.setSize(length);
223 auto && _curentry = myCombinations(i);
225 _curentry.enable =
true;
227 graph->
evalOpParmInst(_curentry.enable, nodeidx,
"enable#", parmidx, offsets, time, 0, 2-1);
228 _curentry.combine = 1;
229 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
230 graph->
evalOpParmInst(_curentry.combine, nodeidx,
"combine#", parmidx, offsets, time, 0, 2-1);
231 _curentry.adjust = 0;
232 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
233 graph->
evalOpParmInst(_curentry.adjust, nodeidx,
"adjust#", parmidx, offsets, time, 0, 2-1);
234 _curentry.srcvolume =
""_UTsh;
235 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
236 graph->
evalOpParmInst(_curentry.srcvolume, nodeidx,
"srcvolume#", parmidx, offsets, time, 0, 2-1);
238 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.adjust==0)))) ) )
239 graph->
evalOpParmInst(_curentry.scale, nodeidx,
"scale#", parmidx, offsets, time, 0, 2-1);
241 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.adjust==0))||((_curentry.adjust==1)))) ) )
242 graph->
evalOpParmInst(_curentry.add, nodeidx,
"add#", parmidx, offsets, time, 0, 2-1);
243 _curentry.process = 0;
244 if (
true && ( (
true&&!(((_curentry.enable==0))||((_curentry.adjust==0))||((_curentry.adjust==1))||((_curentry.adjust==2)))) ) )
245 graph->
evalOpParmInst(_curentry.process, nodeidx,
"process#", parmidx, offsets, time, 0, 2-1);
247 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
248 graph->
evalOpParmInst(_curentry.blend, nodeidx,
"blend#", parmidx, offsets, time, 0, 2-1);
249 _curentry.doblendvolume = 0;
250 if (
true && ( (
true&&!(((_curentry.enable==0)))) ) )
251 graph->
evalOpParmInst(_curentry.doblendvolume, nodeidx,
"doblendvolume#", parmidx, offsets, time, 0, 2-1);
252 _curentry.blendvolume =
""_UTsh;
253 if (
true && ( (
true&&!(((_curentry.doblendvolume==0))||((_curentry.enable==0)))) ) )
254 graph->
evalOpParmInst(_curentry.blendvolume, nodeidx,
"blendvolume#", parmidx, offsets, time, 0, 2-1);
259 myCombinations.clear();
262 graph->
evalOpParm(myPostScale, nodeidx,
"postscale", time, 0);
263 myDoThreshold =
false;
265 graph->
evalOpParm(myDoThreshold, nodeidx,
"dothreshold", time, 0);
267 if (
true && ( (
true&&!(((getDoThreshold()==0)))) ) )
268 graph->
evalOpParm(myThreshold, nodeidx,
"threshold", time, 0);
269 myDoClampMin =
false;
271 graph->
evalOpParm(myDoClampMin, nodeidx,
"doclampmin", time, 0);
273 if (
true && ( (
true&&!(((getDoClampMin()==0)&&(getDoThreshold()==0)))) ) )
274 graph->
evalOpParm(myClampMin, nodeidx,
"clampmin", time, 0);
275 myDoClampMax =
false;
277 graph->
evalOpParm(myDoClampMax, nodeidx,
"doclampmax", time, 0);
279 if (
true && ( (
true&&!(((getDoClampMax()==0)&&(getDoThreshold()==0)))) ) )
280 graph->
evalOpParm(myClampMax, nodeidx,
"clampmax", time, 0);
281 myCreateMissing =
true;
283 graph->
evalOpParm(myCreateMissing, nodeidx,
"createmissing", time, 0);
284 myForceScalar =
false;
285 if (
true && ( (
true&&!(((getCreateMissing()==0)))) ) )
286 graph->
evalOpParm(myForceScalar, nodeidx,
"forcescalar", time, 0);
287 myDeleteSource =
false;
289 graph->
evalOpParm(myDeleteSource, nodeidx,
"deletesource", time, 0);
290 myErrorMissing =
true;
292 graph->
evalOpParm(myErrorMissing, nodeidx,
"errormissing", time, 0);
308 template <
typename T>
315 if (idx.
size() != instance.
size()+1)
325 else if (instance[0] < myCombinations.entries())
327 auto && _data = myCombinations(instance[0]);
411 { doGetParmValue(idx, instance, value); }
413 { doGetParmValue(idx, instance, value); }
415 { doGetParmValue(idx, instance, value); }
417 { doGetParmValue(idx, instance, value); }
419 { doGetParmValue(idx, instance, value); }
421 { doGetParmValue(idx, instance, value); }
423 { doGetParmValue(idx, instance, value); }
425 { doGetParmValue(idx, instance, value); }
427 { doGetParmValue(idx, instance, value); }
429 { doGetParmValue(idx, instance, value); }
431 { doGetParmValue(idx, instance, value); }
433 template <
typename T>
440 if (idx.
size() != instance.
size()+1)
452 if (newsize < 0) newsize = 0;
453 myCombinations.setSize(newsize);
459 myCombinations.setSizeIfNeeded(instance[0]+1);
460 auto && _data = myCombinations(instance[0]);
535 { doSetParmValue(idx, instance, value); }
537 { doSetParmValue(idx, instance, value); }
539 { doSetParmValue(idx, instance, value); }
541 { doSetParmValue(idx, instance, value); }
543 { doSetParmValue(idx, instance, value); }
545 { doSetParmValue(idx, instance, value); }
547 { doSetParmValue(idx, instance, value); }
549 { doSetParmValue(idx, instance, value); }
551 { doSetParmValue(idx, instance, value); }
553 { doSetParmValue(idx, instance, value); }
555 { doSetParmValue(idx, instance, value); }
573 if (fieldnum.
size() < 1)
580 if (fieldnum.
size() == 1)
581 return "numcombines";
601 return "doblendvolume#";
603 return "blendvolume#";
610 return "dothreshold";
622 return "createmissing";
624 return "forcescalar";
626 return "deletesource";
628 return "errormissing";
636 if (fieldnum.
size() < 1)
637 return PARM_UNSUPPORTED;
643 if (fieldnum.
size() == 1)
644 return PARM_MULTIPARM;
713 {
for (
int r = 0;
r < 2;
r++)
for (
int c = 0; c < 2; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
715 {
for (
int r = 0;
r < 3;
r++)
for (
int c = 0; c < 3; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
717 {
for (
int r = 0;
r < 4;
r++)
for (
int c = 0; c < 4; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
730 loadData(is, rampdata);
748 int typelen = colon - data.
buffer();
762 {
int64 iv =
v; UTwrite(os, &iv); }
764 { UTwrite<fpreal64>(os, &
v); }
766 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
768 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
769 UTwrite<fpreal64>(os, &v.
z()); }
771 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
772 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
784 if (s) s->save(ostr);
786 saveData(os, result);
793 ostr << s->getDataTypeToken();
798 saveData(os, result);
802 void save(std::ostream &os)
const
806 saveData(os, myDstVolume);
809 UTwrite(os, &length);
812 auto && _curentry = myCombinations(i);
814 saveData(os, _curentry.enable);
815 saveData(os, _curentry.combine);
816 saveData(os, _curentry.adjust);
817 saveData(os, _curentry.srcvolume);
818 saveData(os, _curentry.scale);
819 saveData(os, _curentry.add);
820 saveData(os, _curentry.process);
821 saveData(os, _curentry.blend);
822 saveData(os, _curentry.doblendvolume);
823 saveData(os, _curentry.blendvolume);
827 saveData(os, myPostScale);
828 saveData(os, myDoThreshold);
829 saveData(os, myThreshold);
830 saveData(os, myDoClampMin);
831 saveData(os, myClampMin);
832 saveData(os, myDoClampMax);
833 saveData(os, myClampMax);
834 saveData(os, myCreateMissing);
835 saveData(os, myForceScalar);
836 saveData(os, myDeleteSource);
837 saveData(os, myErrorMissing);
850 loadData(is, myDstVolume);
854 myCombinations.setSize(length);
857 auto && _curentry = myCombinations(i);
859 loadData(is, _curentry.enable);
860 loadData(is, _curentry.combine);
861 loadData(is, _curentry.adjust);
862 loadData(is, _curentry.srcvolume);
863 loadData(is, _curentry.scale);
864 loadData(is, _curentry.add);
865 loadData(is, _curentry.process);
866 loadData(is, _curentry.blend);
867 loadData(is, _curentry.doblendvolume);
868 loadData(is, _curentry.blendvolume);
872 loadData(is, myPostScale);
873 loadData(is, myDoThreshold);
874 loadData(is, myThreshold);
875 loadData(is, myDoClampMin);
876 loadData(is, myClampMin);
877 loadData(is, myDoClampMax);
878 loadData(is, myClampMax);
879 loadData(is, myCreateMissing);
880 loadData(is, myForceScalar);
881 loadData(is, myDeleteSource);
882 loadData(is, myErrorMissing);
892 if (!thissop)
return getDstVolume();
894 OP_Utils::evalOpParm(result, thissop,
"dstvolume", cookparms.
getCookTime(), 0);
902 if (!thissop)
return getCombinations().entries();
904 OP_Utils::evalOpParm(result, thissop,
"numcombines", cookparms.
getCookTime(), 0);
908 {
return opinstCombinations_enable(cookparms, &_idx); }
912 if (!thissop)
return (myCombinations(_idx[0]).enable);
914 _parmidx[1-1] = _idx[1-1] + 1;
917 OP_Utils::evalOpParmInst(result, thissop,
"enable#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
921 {
return opinstCombinations_combine(cookparms, &_idx); }
925 if (!thissop)
return (myCombinations(_idx[0]).combine);
927 _parmidx[1-1] = _idx[1-1] + 1;
930 OP_Utils::evalOpParmInst(result, thissop,
"combine#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
934 {
return opinstCombinations_adjust(cookparms, &_idx); }
938 if (!thissop)
return (myCombinations(_idx[0]).adjust);
940 _parmidx[1-1] = _idx[1-1] + 1;
943 OP_Utils::evalOpParmInst(result, thissop,
"adjust#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
947 {
return opinstCombinations_srcvolume(cookparms, &_idx); }
951 if (!thissop)
return (myCombinations(_idx[0]).srcvolume);
953 _parmidx[1-1] = _idx[1-1] + 1;
956 OP_Utils::evalOpParmInst(result, thissop,
"srcvolume#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
960 {
return opinstCombinations_scale(cookparms, &_idx); }
964 if (!thissop)
return (myCombinations(_idx[0]).
scale);
966 _parmidx[1-1] = _idx[1-1] + 1;
969 OP_Utils::evalOpParmInst(result, thissop,
"scale#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
973 {
return opinstCombinations_add(cookparms, &_idx); }
977 if (!thissop)
return (myCombinations(_idx[0]).
add);
979 _parmidx[1-1] = _idx[1-1] + 1;
982 OP_Utils::evalOpParmInst(result, thissop,
"add#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
986 {
return opinstCombinations_process(cookparms, &_idx); }
990 if (!thissop)
return (myCombinations(_idx[0]).process);
992 _parmidx[1-1] = _idx[1-1] + 1;
995 OP_Utils::evalOpParmInst(result, thissop,
"process#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
999 {
return opinstCombinations_blend(cookparms, &_idx); }
1003 if (!thissop)
return (myCombinations(_idx[0]).
blend);
1005 _parmidx[1-1] = _idx[1-1] + 1;
1008 OP_Utils::evalOpParmInst(result, thissop,
"blend#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1012 {
return opinstCombinations_doblendvolume(cookparms, &_idx); }
1016 if (!thissop)
return (myCombinations(_idx[0]).doblendvolume);
1018 _parmidx[1-1] = _idx[1-1] + 1;
1021 OP_Utils::evalOpParmInst(result, thissop,
"doblendvolume#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1025 {
return opinstCombinations_blendvolume(cookparms, &_idx); }
1029 if (!thissop)
return (myCombinations(_idx[0]).blendvolume);
1031 _parmidx[1-1] = _idx[1-1] + 1;
1034 OP_Utils::evalOpParmInst(result, thissop,
"blendvolume#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1043 if (!thissop)
return getPostScale();
1045 OP_Utils::evalOpParm(result, thissop,
"postscale", cookparms.
getCookTime(), 0);
1053 if (!thissop)
return getDoThreshold();
1055 OP_Utils::evalOpParm(result, thissop,
"dothreshold", cookparms.
getCookTime(), 0);
1063 if (!thissop)
return getThreshold();
1065 OP_Utils::evalOpParm(result, thissop,
"threshold", cookparms.
getCookTime(), 0);
1073 if (!thissop)
return getDoClampMin();
1075 OP_Utils::evalOpParm(result, thissop,
"doclampmin", cookparms.
getCookTime(), 0);
1083 if (!thissop)
return getClampMin();
1085 OP_Utils::evalOpParm(result, thissop,
"clampmin", cookparms.
getCookTime(), 0);
1093 if (!thissop)
return getDoClampMax();
1095 OP_Utils::evalOpParm(result, thissop,
"doclampmax", cookparms.
getCookTime(), 0);
1103 if (!thissop)
return getClampMax();
1105 OP_Utils::evalOpParm(result, thissop,
"clampmax", cookparms.
getCookTime(), 0);
1113 if (!thissop)
return getCreateMissing();
1115 OP_Utils::evalOpParm(result, thissop,
"createmissing", cookparms.
getCookTime(), 0);
1123 if (!thissop)
return getForceScalar();
1125 OP_Utils::evalOpParm(result, thissop,
"forcescalar", cookparms.
getCookTime(), 0);
1133 if (!thissop)
return getDeleteSource();
1135 OP_Utils::evalOpParm(result, thissop,
"deletesource", cookparms.
getCookTime(), 0);
1143 if (!thissop)
return getErrorMissing();
1145 OP_Utils::evalOpParm(result, thissop,
"errormissing", cookparms.
getCookTime(), 0);
1159 bool myCreateMissing;
1161 bool myDeleteSource;
1162 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
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)
void coerceValue(T &result, const S &src) const
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
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)
OP_NodeParms & operator=(const OP_NodeParms &)=default
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