23 namespace SOP_VolumeMergeEnums
 
   38         using namespace UT::Literal;
 
   86         if (myGroup != src.myGroup) 
return false;
 
   87         if (myMergegrp != src.myMergegrp) 
return false;
 
   88         if (myMergemethod != src.myMergemethod) 
return false;
 
   89         if (myClampvolume != src.myClampvolume) 
return false;
 
   90         if (myDstpreadd != src.myDstpreadd) 
return false;
 
   91         if (myDstpremul != src.myDstpremul) 
return false;
 
   92         if (mySrcpreadd != src.mySrcpreadd) 
return false;
 
   93         if (mySrcpremul != src.mySrcpremul) 
return false;
 
   94         if (myPostadd != src.myPostadd) 
return false;
 
   95         if (myPostmul != src.myPostmul) 
return false;
 
   96         if (myDoclampmin != src.myDoclampmin) 
return false;
 
   97         if (myClampmin != src.myClampmin) 
return false;
 
   98         if (myDoclampmax != src.myDoclampmax) 
return false;
 
   99         if (myClampmax != src.myClampmax) 
return false;
 
  118             graph->
evalOpParm(myGroup, nodeidx, 
"group", time, graph->
isDirect()?
nullptr:depnode);
 
  119         myMergegrp = 
""_UTsh;
 
  121             graph->
evalOpParm(myMergegrp, nodeidx, 
"mergegrp", time, graph->
isDirect()?
nullptr:depnode);
 
  124             graph->
evalOpParm(myMergemethod, nodeidx, 
"mergemethod", time, graph->
isDirect()?
nullptr:depnode);
 
  125         myClampvolume = 
true;
 
  127             graph->
evalOpParm(myClampvolume, nodeidx, 
"clampvolume", time, graph->
isDirect()?
nullptr:depnode);
 
  130             graph->
evalOpParm(myDstpreadd, nodeidx, 
"dstpreadd", time, graph->
isDirect()?
nullptr:depnode);
 
  133             graph->
evalOpParm(myDstpremul, nodeidx, 
"dstpremul", time, graph->
isDirect()?
nullptr:depnode);
 
  136             graph->
evalOpParm(mySrcpreadd, nodeidx, 
"srcpreadd", time, graph->
isDirect()?
nullptr:depnode);
 
  139             graph->
evalOpParm(mySrcpremul, nodeidx, 
"srcpremul", time, graph->
isDirect()?
nullptr:depnode);
 
  142             graph->
evalOpParm(myPostadd, nodeidx, 
"postadd", time, graph->
isDirect()?
nullptr:depnode);
 
  145             graph->
evalOpParm(myPostmul, nodeidx, 
"postmul", time, graph->
isDirect()?
nullptr:depnode);
 
  146         myDoclampmin = 
false;
 
  148             graph->
evalOpParm(myDoclampmin, nodeidx, 
"doclampmin", time, graph->
isDirect()?
nullptr:depnode);
 
  150         if (
true && ( (
true&&!(((getDoclampmin()==0)))) ) )
 
  151             graph->
evalOpParm(myClampmin, nodeidx, 
"clampmin", time, graph->
isDirect()?
nullptr:depnode);
 
  152         myDoclampmax = 
false;
 
  154             graph->
evalOpParm(myDoclampmax, nodeidx, 
"doclampmax", time, graph->
isDirect()?
nullptr:depnode);
 
  156         if (
true && ( (
true&&!(((getDoclampmax()==0)))) ) )
 
  157             graph->
evalOpParm(myClampmax, nodeidx, 
"clampmax", time, graph->
isDirect()?
nullptr:depnode);
 
  173     template <
typename T>
 
  180         if (idx.
size() != instance.
size()+1)
 
  185                 coerceValue(value, myGroup);
 
  188                 coerceValue(value, myMergegrp);
 
  191                 coerceValue(value, myMergemethod);
 
  194                 coerceValue(value, myClampvolume);
 
  197                 coerceValue(value, myDstpreadd);
 
  200                 coerceValue(value, myDstpremul);
 
  203                 coerceValue(value, mySrcpreadd);
 
  206                 coerceValue(value, mySrcpremul);
 
  209                 coerceValue(value, myPostadd);
 
  212                 coerceValue(value, myPostmul);
 
  215                 coerceValue(value, myDoclampmin);
 
  218                 coerceValue(value, myClampmin);
 
  221                 coerceValue(value, myDoclampmax);
 
  224                 coerceValue(value, myClampmax);
 
  240     { doGetParmValue(idx, instance, value); }
 
  242     { doGetParmValue(idx, instance, value); }
 
  244     { doGetParmValue(idx, instance, value); }
 
  246     { doGetParmValue(idx, instance, value); }
 
  248     { doGetParmValue(idx, instance, value); }
 
  250     { doGetParmValue(idx, instance, value); }
 
  252     { doGetParmValue(idx, instance, value); }
 
  254     { doGetParmValue(idx, instance, value); }
 
  256     { doGetParmValue(idx, instance, value); }
 
  258     { doGetParmValue(idx, instance, value); }
 
  260     { doGetParmValue(idx, instance, value); }
 
  262     template <
typename T>
 
  269         if (idx.
size() != instance.
size()+1)
 
  274                 coerceValue(myGroup, ( ( value ) ));
 
  277                 coerceValue(myMergegrp, ( ( value ) ));
 
  280                 coerceValue(myMergemethod, clampMinValue(0,  clampMaxValue(5,  value ) ));
 
  283                 coerceValue(myClampvolume, ( ( value ) ));
 
  286                 coerceValue(myDstpreadd, ( ( value ) ));
 
  289                 coerceValue(myDstpremul, ( ( value ) ));
 
  292                 coerceValue(mySrcpreadd, ( ( value ) ));
 
  295                 coerceValue(mySrcpremul, ( ( value ) ));
 
  298                 coerceValue(myPostadd, ( ( value ) ));
 
  301                 coerceValue(myPostmul, ( ( value ) ));
 
  304                 coerceValue(myDoclampmin, ( ( value ) ));
 
  307                 coerceValue(myClampmin, ( ( value ) ));
 
  310                 coerceValue(myDoclampmax, ( ( value ) ));
 
  313                 coerceValue(myClampmax, ( ( value ) ));
 
  320     { doSetParmValue(idx, instance, value); }
 
  322     { doSetParmValue(idx, instance, value); }
 
  324     { doSetParmValue(idx, instance, value); }
 
  326     { doSetParmValue(idx, instance, value); }
 
  328     { doSetParmValue(idx, instance, value); }
 
  330     { doSetParmValue(idx, instance, value); }
 
  332     { doSetParmValue(idx, instance, value); }
 
  334     { doSetParmValue(idx, instance, value); }
 
  336     { doSetParmValue(idx, instance, value); }
 
  338     { doSetParmValue(idx, instance, value); }
 
  340     { doSetParmValue(idx, instance, value); }
 
  356         if (fieldnum.
size() < 1)
 
  365                 return "mergemethod";
 
  367                 return "clampvolume";
 
  395         if (fieldnum.
size() < 1)
 
  396             return PARM_UNSUPPORTED;
 
  429         return PARM_UNSUPPORTED;
 
  465         loadData(is, rampdata);
 
  483                 int             typelen = colon - data.
buffer();
 
  497     { 
int64 iv = 
v; UTwrite(os, &iv); }
 
  499     { UTwrite<fpreal64>(os, &
v); }
 
  501     { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
 
  503     { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
 
  504       UTwrite<fpreal64>(os, &v.
z()); }
 
  506     { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
 
  507       UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
 
  519         if (s) s->save(ostr);
 
  521         saveData(os, result);
 
  528             ostr << s->getDataTypeToken();
 
  533         saveData(os, result);
 
  537     void         save(std::ostream &os)
 const 
  541         saveData(os, myGroup);
 
  542         saveData(os, myMergegrp);
 
  543         saveData(os, myMergemethod);
 
  544         saveData(os, myClampvolume);
 
  545         saveData(os, myDstpreadd);
 
  546         saveData(os, myDstpremul);
 
  547         saveData(os, mySrcpreadd);
 
  548         saveData(os, mySrcpremul);
 
  549         saveData(os, myPostadd);
 
  550         saveData(os, myPostmul);
 
  551         saveData(os, myDoclampmin);
 
  552         saveData(os, myClampmin);
 
  553         saveData(os, myDoclampmax);
 
  554         saveData(os, myClampmax);
 
  567         loadData(is, myGroup);
 
  568         loadData(is, myMergegrp);
 
  569         loadData(is, myMergemethod);
 
  570         loadData(is, myClampvolume);
 
  571         loadData(is, myDstpreadd);
 
  572         loadData(is, myDstpremul);
 
  573         loadData(is, mySrcpreadd);
 
  574         loadData(is, mySrcpremul);
 
  575         loadData(is, myPostadd);
 
  576         loadData(is, myPostmul);
 
  577         loadData(is, myDoclampmin);
 
  578         loadData(is, myClampmin);
 
  579         loadData(is, myDoclampmax);
 
  580         loadData(is, myClampmax);
 
  590         if (!thissop) 
return getGroup();
 
  592         OP_Utils::evalOpParm(result, thissop, 
"group", cookparms.
getCookTime(), 0);
 
  600         if (!thissop) 
return getMergegrp();
 
  602         OP_Utils::evalOpParm(result, thissop, 
"mergegrp", cookparms.
getCookTime(), 0);
 
  610         if (!thissop) 
return getMergemethod();
 
  612         OP_Utils::evalOpParm(result, thissop, 
"mergemethod", cookparms.
getCookTime(), 0);
 
  620         if (!thissop) 
return getClampvolume();
 
  622         OP_Utils::evalOpParm(result, thissop, 
"clampvolume", cookparms.
getCookTime(), 0);
 
  630         if (!thissop) 
return getDstpreadd();
 
  632         OP_Utils::evalOpParm(result, thissop, 
"dstpreadd", cookparms.
getCookTime(), 0);
 
  640         if (!thissop) 
return getDstpremul();
 
  642         OP_Utils::evalOpParm(result, thissop, 
"dstpremul", cookparms.
getCookTime(), 0);
 
  650         if (!thissop) 
return getSrcpreadd();
 
  652         OP_Utils::evalOpParm(result, thissop, 
"srcpreadd", cookparms.
getCookTime(), 0);
 
  660         if (!thissop) 
return getSrcpremul();
 
  662         OP_Utils::evalOpParm(result, thissop, 
"srcpremul", cookparms.
getCookTime(), 0);
 
  670         if (!thissop) 
return getPostadd();
 
  672         OP_Utils::evalOpParm(result, thissop, 
"postadd", cookparms.
getCookTime(), 0);
 
  680         if (!thissop) 
return getPostmul();
 
  682         OP_Utils::evalOpParm(result, thissop, 
"postmul", cookparms.
getCookTime(), 0);
 
  690         if (!thissop) 
return getDoclampmin();
 
  692         OP_Utils::evalOpParm(result, thissop, 
"doclampmin", cookparms.
getCookTime(), 0);
 
  700         if (!thissop) 
return getClampmin();
 
  702         OP_Utils::evalOpParm(result, thissop, 
"clampmin", cookparms.
getCookTime(), 0);
 
  710         if (!thissop) 
return getDoclampmax();
 
  712         OP_Utils::evalOpParm(result, thissop, 
"doclampmax", cookparms.
getCookTime(), 0);
 
  720         if (!thissop) 
return getClampmax();
 
  722         OP_Utils::evalOpParm(result, thissop, 
"clampmax", cookparms.
getCookTime(), 0);
 
fpreal64 getClampmax() const 
 
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
 
fpreal64 opSrcpremul(const SOP_NodeVerb::CookParms &cookparms) const 
 
static void saveData(std::ostream &os, UT_Vector3D v)
 
bool opClampvolume(const SOP_NodeVerb::CookParms &cookparms) const 
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
 
void setPostadd(fpreal64 val)
 
fpreal64 getClampmin() const 
 
SOP_Node * getNode() const 
 
bool opDoclampmin(const SOP_NodeVerb::CookParms &cookparms) const 
 
static void loadData(UT_IStream &is, UT_Vector2D &v)
 
fpreal64 opSrcpreadd(const SOP_NodeVerb::CookParms &cookparms) const 
 
static void loadData(UT_IStream &is, UT_Vector4I &v)
 
static void loadData(UT_IStream &is, UT_Vector3I &v)
 
Mergemethod getMergemethod() const 
 
exint getNestNumParms(TempIndex idx) const override
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
 
exint bread(int32 *buffer, exint asize=1)
 
GT_API const UT_StringHolder time
 
constexpr SYS_FORCE_INLINE T & y() noexcept
 
GLsizei const GLfloat * value
 
static void loadData(UT_IStream &is, UT_Vector4D &v)
 
static void loadData(UT_IStream &is, UT_StringHolder &v)
 
void save(std::ostream &os) const 
 
static void saveData(std::ostream &os, UT_Vector4D v)
 
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
 
const OP_Context & context() const 
 
constexpr SYS_FORCE_INLINE T & z() noexcept
 
SYS_FORCE_INLINE const char * buffer() const 
 
An output stream object that owns its own string buffer storage. 
 
static void saveData(std::ostream &os, UT_Matrix3D v)
 
static void saveData(std::ostream &os, UT_StringHolder s)
 
void loadFromOpSubclass(const LoadParms &loadparms) override
 
void setSrcpreadd(fpreal64 val)
 
**But if you need a result
 
const UT_StringHolder & getMergegrp() const 
 
void setDstpremul(fpreal64 val)
 
bool operator==(const SOP_VolumeMergeParms &src) const 
 
fpreal64 getPostadd() const 
 
static void loadData(UT_IStream &is, UT_Matrix4D &v)
 
UT_StringHolder opMergegrp(const SOP_NodeVerb::CookParms &cookparms) const 
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
 
fpreal64 getSrcpremul() const 
 
const UT_StringHolder & getGroup() 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. 
 
void setDstpreadd(fpreal64 val)
 
fpreal64 getPostmul() const 
 
void setDoclampmax(bool val)
 
constexpr SYS_FORCE_INLINE T & x() noexcept
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
 
fpreal64 opClampmax(const SOP_NodeVerb::CookParms &cookparms) const 
 
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
 
SYS_FORCE_INLINE UT_StringHolder getToken(Mergemethod enum_value)
 
Mergemethod opMergemethod(const SOP_NodeVerb::CookParms &cookparms) const 
 
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
 
constexpr SYS_FORCE_INLINE T & x() noexcept
 
void setPostmul(fpreal64 val)
 
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
 
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
 
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
 
static void saveData(std::ostream &os, PRM_DataItemHandle s)
 
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
 
void setMergemethod(Mergemethod val)
 
bool getDoclampmax() const 
 
const char * getNestParmName(TempIndex fieldnum) const override
 
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
 
static void saveData(std::ostream &os, int64 v)
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
 
const OP_GraphProxy * graph() const 
 
fpreal64 getDstpreadd() const 
 
fpreal64 getDstpremul() const 
 
static void loadData(UT_IStream &is, UT_Vector2I &v)
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
 
ParmType getNestParmType(TempIndex fieldnum) const override
 
static void loadData(UT_IStream &is, UT_Matrix2D &v)
 
bool opDoclampmax(const SOP_NodeVerb::CookParms &cookparms) const 
 
bool isParmColorRamp(exint idx) const override
 
fpreal64 opDstpremul(const SOP_NodeVerb::CookParms &cookparms) const 
 
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
 
void setClampmin(fpreal64 val)
 
void copyFrom(const OP_NodeParms *src) override
 
static void loadData(UT_IStream &is, UT_Vector3D &v)
 
static void loadData(UT_IStream &is, int64 &v)
 
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
 
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
 
fpreal64 getSrcpreadd() const 
 
void saveBinary(std::ostream &os) const 
Save string to binary stream. 
 
fpreal64 opPostadd(const SOP_NodeVerb::CookParms &cookparms) const 
 
GT_API const UT_StringHolder version
 
static void saveData(std::ostream &os, fpreal64 v)
 
void setClampvolume(bool val)
 
void setClampmax(fpreal64 val)
 
static void saveData(std::ostream &os, UT_Matrix4D v)
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
 
static void loadData(UT_IStream &is, UT_Matrix3D &v)
 
void setDoclampmin(bool val)
 
DEP_MicroNode * depnode() const 
 
LeafData & operator=(const LeafData &)=delete
 
void setGroup(const UT_StringHolder &val)
 
Utility class for containing a color ramp. 
 
static void loadData(UT_IStream &is, fpreal64 &v)
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
 
constexpr SYS_FORCE_INLINE T & w() noexcept
 
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
 
virtual UT_StringHolder baseGetSignature() const 
 
static void saveData(std::ostream &os, bool v)
 
bool getClampvolume() const 
 
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
 
fpreal getCookTime() const 
 
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
 
const char * findChar(int c) const 
 
bool load(UT_IStream &is)
 
void setSrcpremul(fpreal64 val)
 
static void saveData(std::ostream &os, UT_Matrix2D v)
 
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const 
 
constexpr SYS_FORCE_INLINE T & y() noexcept
 
static void loadData(UT_IStream &is, bool &v)
 
bool operator!=(const SOP_VolumeMergeParms &src) const 
 
void setMergegrp(const UT_StringHolder &val)
 
virtual bool isDirect() const =0
Direct proxies mirror actual nodes: 
 
fpreal64 opDstpreadd(const SOP_NodeVerb::CookParms &cookparms) const 
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
 
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
 
fpreal64 opClampmin(const SOP_NodeVerb::CookParms &cookparms) const 
 
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const 
 
constexpr SYS_FORCE_INLINE T & y() noexcept
 
bool getDoclampmin() const 
 
SYS_FORCE_INLINE bool isstring() const 
 
static void saveData(std::ostream &os, UT_Vector2D v)
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
 
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
 
constexpr SYS_FORCE_INLINE T & x() noexcept
 
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
 
fpreal64 opPostmul(const SOP_NodeVerb::CookParms &cookparms) const