23 namespace SOP_MLRegressionLinearCoreEnums
34 using namespace UT::Literal;
51 using namespace UT::Literal;
68 using namespace UT::Literal;
93 inputpointattribute =
"value"_UTsh;
94 inputvolumename =
"density"_UTsh;
100 if (inputtype != src.
inputtype)
return false;
118 for (
int i = 0; i < list.
entries(); i++)
149 outputpointattribute =
"value"_UTsh;
150 outputvolumename =
"density"_UTsh;
158 if (outputtype != src.
outputtype)
return false;
178 for (
int i = 0; i < list.
entries(); i++)
205 myWeightDecay = 0.000001;
206 myErrorThreshold = 0.00000001;
208 myOutputs.setSize(1);
221 if (myBatch != src.myBatch)
return false;
222 if (myWeightDecay != src.myWeightDecay)
return false;
223 if (myErrorThreshold != src.myErrorThreshold)
return false;
224 if (myInputs != src.myInputs)
return false;
225 if (myOutputs != src.myOutputs)
return false;
246 graph->
evalOpParm(myBatch, nodeidx,
"batch", time, graph->
isDirect()?
nullptr:depnode);
247 myWeightDecay = 0.000001;
249 graph->
evalOpParm(myWeightDecay, nodeidx,
"weightdecay", time, graph->
isDirect()?
nullptr:depnode);
250 myErrorThreshold = 0.00000001;
252 graph->
evalOpParm(myErrorThreshold, nodeidx,
"errorthreshold", time, graph->
isDirect()?
nullptr:depnode);
256 graph->
evalOpParm(length, nodeidx,
"inputs", time, graph->
isDirect()?
nullptr:depnode);
257 if (length < 0) length = 0;
258 myInputs.setSize(length);
265 auto && _curentry = myInputs(i);
267 _curentry.inputtype = 0;
269 graph->
evalOpParmInst(_curentry.inputtype, nodeidx,
"inputtype#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
270 _curentry.inputpointattribute =
"value"_UTsh;
271 if (
true && ( (
true&&!(((_curentry.inputtype!=0)))) ) )
272 graph->
evalOpParmInst(_curentry.inputpointattribute, nodeidx,
"inputpointattribute#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
273 _curentry.inputvolumename =
"density"_UTsh;
274 if (
true && ( (
true&&!(((_curentry.inputtype!=1)))) ) )
275 graph->
evalOpParmInst(_curentry.inputvolumename, nodeidx,
"inputvolumename#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
284 graph->
evalOpParm(length, nodeidx,
"outputs", time, graph->
isDirect()?
nullptr:depnode);
285 if (length < 0) length = 0;
286 myOutputs.setSize(length);
293 auto && _curentry = myOutputs(i);
295 _curentry.outputtype = 0;
297 graph->
evalOpParmInst(_curentry.outputtype, nodeidx,
"outputtype#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
298 _curentry.outputpointattribute =
"value"_UTsh;
299 if (
true && ( (
true&&!(((_curentry.outputtype!=0)))) ) )
300 graph->
evalOpParmInst(_curentry.outputpointattribute, nodeidx,
"outputpointattribute#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
301 _curentry.outputvolumename =
"density"_UTsh;
302 if (
true && ( (
true&&!(((_curentry.outputtype!=1)))) ) )
303 graph->
evalOpParmInst(_curentry.outputvolumename, nodeidx,
"outputvolumename#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
304 _curentry.outputvolumeresolution =
UT_Vector3I(10,10,10);
305 if (
true && ( (
true&&!(((_curentry.outputtype!=1)))) ) )
306 graph->
evalOpParmInst(_curentry.outputvolumeresolution, nodeidx,
"outputvolumeresolution#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
307 _curentry.outputtuplesize = 1;
309 graph->
evalOpParmInst(_curentry.outputtuplesize, nodeidx,
"outputtuplesize#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
330 template <
typename T>
337 if (idx.
size() != instance.
size()+1)
342 coerceValue(value, myBatch);
345 coerceValue(value, myWeightDecay);
348 coerceValue(value, myErrorThreshold);
352 coerceValue(value, myInputs.entries());
353 else if (instance[0] < myInputs.entries())
355 auto && _data = myInputs(instance[0]);
359 coerceValue(value, _data.inputtype);
362 coerceValue(value, _data.inputpointattribute);
365 coerceValue(value, _data.inputvolumename);
373 coerceValue(value, myOutputs.entries());
374 else if (instance[0] < myOutputs.entries())
376 auto && _data = myOutputs(instance[0]);
380 coerceValue(value, _data.outputtype);
383 coerceValue(value, _data.outputpointattribute);
386 coerceValue(value, _data.outputvolumename);
389 coerceValue(value, _data.outputvolumeresolution);
392 coerceValue(value, _data.outputtuplesize);
412 { doGetParmValue(idx, instance, value); }
414 { doGetParmValue(idx, instance, value); }
416 { doGetParmValue(idx, instance, value); }
418 { doGetParmValue(idx, instance, value); }
420 { doGetParmValue(idx, instance, value); }
422 { doGetParmValue(idx, instance, value); }
424 { doGetParmValue(idx, instance, value); }
426 { doGetParmValue(idx, instance, value); }
428 { doGetParmValue(idx, instance, value); }
430 { doGetParmValue(idx, instance, value); }
432 { doGetParmValue(idx, instance, value); }
434 template <
typename T>
441 if (idx.
size() != instance.
size()+1)
446 coerceValue(myBatch, clampMinValue(0, clampMaxValue(1, value ) ));
449 coerceValue(myWeightDecay, ( ( value ) ));
452 coerceValue(myErrorThreshold, ( ( value ) ));
458 coerceValue(newsize, value);
459 if (newsize < 0) newsize = 0;
460 myInputs.setSize(newsize);
466 myInputs.setSizeIfNeeded(instance[0]+1);
467 auto && _data = myInputs(instance[0]);
471 coerceValue(_data.inputtype, value);
474 coerceValue(_data.inputpointattribute, value);
477 coerceValue(_data.inputvolumename, value);
487 coerceValue(newsize, value);
488 if (newsize < 0) newsize = 0;
489 myOutputs.setSize(newsize);
495 myOutputs.setSizeIfNeeded(instance[0]+1);
496 auto && _data = myOutputs(instance[0]);
500 coerceValue(_data.outputtype, value);
503 coerceValue(_data.outputpointattribute, value);
506 coerceValue(_data.outputvolumename, value);
509 coerceValue(_data.outputvolumeresolution, value);
512 coerceValue(_data.outputtuplesize, value);
523 { doSetParmValue(idx, instance, value); }
525 { doSetParmValue(idx, instance, value); }
527 { doSetParmValue(idx, instance, value); }
529 { doSetParmValue(idx, instance, value); }
531 { doSetParmValue(idx, instance, value); }
533 { doSetParmValue(idx, instance, value); }
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); }
563 if (fieldnum.
size() < 1)
570 return "weightdecay";
572 return "errorthreshold";
574 if (fieldnum.
size() == 1)
581 return "inputpointattribute#";
583 return "inputvolumename#";
588 if (fieldnum.
size() == 1)
593 return "outputtype#";
595 return "outputpointattribute#";
597 return "outputvolumename#";
599 return "outputvolumeresolution#";
601 return "outputtuplesize#";
612 if (fieldnum.
size() < 1)
613 return PARM_UNSUPPORTED;
623 if (fieldnum.
size() == 1)
624 return PARM_MULTIPARM;
635 return PARM_UNSUPPORTED;
637 if (fieldnum.
size() == 1)
638 return PARM_MULTIPARM;
653 return PARM_UNSUPPORTED;
656 return PARM_UNSUPPORTED;
692 loadData(is, rampdata);
710 int typelen = colon - data.
buffer();
724 {
int64 iv =
v; UTwrite(os, &iv); }
726 { UTwrite<fpreal64>(os, &
v); }
728 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
730 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
731 UTwrite<fpreal64>(os, &v.
z()); }
733 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
734 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
746 if (s) s->save(ostr);
748 saveData(os, result);
755 ostr << s->getDataTypeToken();
760 saveData(os, result);
764 void save(std::ostream &os)
const
768 saveData(os, myBatch);
769 saveData(os, myWeightDecay);
770 saveData(os, myErrorThreshold);
773 UTwrite(os, &length);
776 auto && _curentry = myInputs(i);
778 saveData(os, _curentry.inputtype);
779 saveData(os, _curentry.inputpointattribute);
780 saveData(os, _curentry.inputvolumename);
786 UTwrite(os, &length);
789 auto && _curentry = myOutputs(i);
791 saveData(os, _curentry.outputtype);
792 saveData(os, _curentry.outputpointattribute);
793 saveData(os, _curentry.outputvolumename);
794 saveData(os, _curentry.outputvolumeresolution);
795 saveData(os, _curentry.outputtuplesize);
811 loadData(is, myBatch);
812 loadData(is, myWeightDecay);
813 loadData(is, myErrorThreshold);
817 myInputs.setSize(length);
820 auto && _curentry = myInputs(i);
822 loadData(is, _curentry.inputtype);
823 loadData(is, _curentry.inputpointattribute);
824 loadData(is, _curentry.inputvolumename);
831 myOutputs.setSize(length);
834 auto && _curentry = myOutputs(i);
836 loadData(is, _curentry.outputtype);
837 loadData(is, _curentry.outputpointattribute);
838 loadData(is, _curentry.outputvolumename);
839 loadData(is, _curentry.outputvolumeresolution);
840 loadData(is, _curentry.outputtuplesize);
853 if (!thissop)
return getBatch();
855 OP_Utils::evalOpParm(result, thissop,
"batch", cookparms.
getCookTime(), 0);
856 return Batch(result);
863 if (!thissop)
return getWeightDecay();
865 OP_Utils::evalOpParm(result, thissop,
"weightdecay", cookparms.
getCookTime(), 0);
873 if (!thissop)
return getErrorThreshold();
875 OP_Utils::evalOpParm(result, thissop,
"errorthreshold", cookparms.
getCookTime(), 0);
883 if (!thissop)
return getInputs().entries();
885 OP_Utils::evalOpParm(result, thissop,
"inputs", cookparms.
getCookTime(), 0);
889 {
return opinstInputs_inputtype(cookparms, &_idx); }
893 if (!thissop)
return (myInputs(_idx[0]).inputtype);
895 _parmidx[1-1] = _idx[1-1] + 1;
898 OP_Utils::evalOpParmInst(result, thissop,
"inputtype#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
902 {
return opinstInputs_inputpointattribute(cookparms, &_idx); }
906 if (!thissop)
return (myInputs(_idx[0]).inputpointattribute);
908 _parmidx[1-1] = _idx[1-1] + 1;
911 OP_Utils::evalOpParmInst(result, thissop,
"inputpointattribute#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
915 {
return opinstInputs_inputvolumename(cookparms, &_idx); }
919 if (!thissop)
return (myInputs(_idx[0]).inputvolumename);
921 _parmidx[1-1] = _idx[1-1] + 1;
924 OP_Utils::evalOpParmInst(result, thissop,
"inputvolumename#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
933 if (!thissop)
return getOutputs().entries();
935 OP_Utils::evalOpParm(result, thissop,
"outputs", cookparms.
getCookTime(), 0);
939 {
return opinstOutputs_outputtype(cookparms, &_idx); }
943 if (!thissop)
return (myOutputs(_idx[0]).outputtype);
945 _parmidx[1-1] = _idx[1-1] + 1;
948 OP_Utils::evalOpParmInst(result, thissop,
"outputtype#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
952 {
return opinstOutputs_outputpointattribute(cookparms, &_idx); }
956 if (!thissop)
return (myOutputs(_idx[0]).outputpointattribute);
958 _parmidx[1-1] = _idx[1-1] + 1;
961 OP_Utils::evalOpParmInst(result, thissop,
"outputpointattribute#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
965 {
return opinstOutputs_outputvolumename(cookparms, &_idx); }
969 if (!thissop)
return (myOutputs(_idx[0]).outputvolumename);
971 _parmidx[1-1] = _idx[1-1] + 1;
974 OP_Utils::evalOpParmInst(result, thissop,
"outputvolumename#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
978 {
return opinstOutputs_outputvolumeresolution(cookparms, &_idx); }
982 if (!thissop)
return (myOutputs(_idx[0]).outputvolumeresolution);
984 _parmidx[1-1] = _idx[1-1] + 1;
987 OP_Utils::evalOpParmInst(result, thissop,
"outputvolumeresolution#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
991 {
return opinstOutputs_outputtuplesize(cookparms, &_idx); }
995 if (!thissop)
return (myOutputs(_idx[0]).outputtuplesize);
997 _parmidx[1-1] = _idx[1-1] + 1;
1000 OP_Utils::evalOpParmInst(result, thissop,
"outputtuplesize#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
static void loadData(UT_IStream &is, fpreal64 &v)
exint opInputs(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
GLenum GLuint GLenum GLsizei const GLchar * buf
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
static void saveData(std::ostream &os, UT_StringHolder s)
SOP_Node * getNode() const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
fpreal64 getErrorThreshold() const
static void loadData(UT_IStream &is, UT_Vector3D &v)
const UT_Array< Inputs > & getInputs() const
UT_Vector3I opOutputs_outputvolumeresolution(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
UT_Vector3I opinstOutputs_outputvolumeresolution(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void saveData(std::ostream &os, UT_Vector4D v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
GLsizei const GLfloat * value
bool operator==(const SOP_MLRegressionLinearCoreParms &src) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
static void saveData(std::ostream &os, UT_Matrix4D v)
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
static void loadData(UT_IStream &is, UT_Vector4I &v)
static void loadData(UT_IStream &is, bool &v)
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
UT_StringHolder opOutputs_outputvolumename(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
int64 opOutputs_outputtuplesize(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
const OP_Context & context() const
constexpr SYS_FORCE_INLINE T & z() noexcept
UT_StringHolder opinstOutputs_outputvolumename(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
SYS_FORCE_INLINE const char * buffer() const
GLuint GLsizei GLsizei * length
An output stream object that owns its own string buffer storage.
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
**But if you need a result
UT_Vector3T< int64 > UT_Vector3I
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 setErrorThreshold(fpreal64 val)
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
constexpr SYS_FORCE_INLINE T & x() noexcept
void loadFromOpSubclass(const LoadParms &loadparms) override
GLuint GLsizei const GLuint const GLintptr * offsets
static void loadData(UT_IStream &is, UT_Vector4D &v)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
constexpr SYS_FORCE_INLINE T & x() noexcept
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
int64 opinstOutputs_outputtuplesize(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
exint opOutputs(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
UT_StringHolder opOutputs_outputpointattribute(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
constexpr SYS_FORCE_INLINE T & z() noexcept
UT_StringHolder outputpointattribute
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
bool load(UT_IStream &is)
UT_StringHolder opinstInputs_inputpointattribute(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
UT_StringHolder opinstInputs_inputvolumename(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void loadData(UT_IStream &is, UT_Vector2I &v)
exint read(bool *array, exint sz=1)
const OP_GraphProxy * graph() const
static void saveData(std::ostream &os, int64 v)
void copyFrom(const OP_NodeParms *src) override
UT_StringHolder createString(const UT_Array< Outputs > &list) const
UT_StringHolder opInputs_inputpointattribute(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
fpreal64 opErrorThreshold(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Matrix4D &v)
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
ParmType getNestParmType(TempIndex fieldnum) const override
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
SYS_FORCE_INLINE UT_StringHolder getToken(Batch enum_value)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void setOutputs(const UT_Array< Outputs > &val)
SYS_FORCE_INLINE void strcat(const char *src)
void saveBinary(std::ostream &os) const
Save string to binary stream.
exint getNestNumParms(TempIndex idx) const override
GT_API const UT_StringHolder version
static void loadData(UT_IStream &is, UT_StringHolder &v)
UT_Vector3I outputvolumeresolution
exint entries() const
Alias of size(). size() is preferred.
void setWeightDecay(fpreal64 val)
void setInputs(const UT_Array< Inputs > &val)
static void saveData(std::ostream &os, UT_Vector3D v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
int int appendSprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
fpreal64 getWeightDecay() const
int64 opinstInputs_inputtype(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void saveData(std::ostream &os, UT_Matrix3D v)
static void loadData(UT_IStream &is, UT_Matrix3D &v)
UT_StringHolder createString(const UT_Array< Inputs > &list) const
UT_StringHolder opInputs_inputvolumename(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
DEP_MicroNode * depnode() const
LeafData & operator=(const LeafData &)=delete
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
Utility class for containing a color ramp.
static void saveData(std::ostream &os, UT_Vector2D v)
fpreal64 opWeightDecay(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & w() noexcept
SYS_FORCE_INLINE void append(char character)
static void loadData(UT_IStream &is, UT_Vector3I &v)
virtual UT_StringHolder baseGetSignature() const
int64 opOutputs_outputtype(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
fpreal getCookTime() const
static void loadData(UT_IStream &is, UT_Vector2D &v)
const UT_Array< Outputs > & getOutputs() const
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
const char * findChar(int c) const
void save(std::ostream &os) const
bool operator!=(const SOP_MLRegressionLinearCoreParms &src) const
static void saveData(std::ostream &os, fpreal64 v)
static void saveData(std::ostream &os, UT_Matrix2D v)
bool isParmColorRamp(exint idx) const override
SOP_MLRegressionLinearCoreParms()
static void loadData(UT_IStream &is, int64 &v)
static void saveData(std::ostream &os, PRM_DataItemHandle s)
bool operator!=(const Outputs &src) const
UT_StringHolder opinstOutputs_outputpointattribute(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
constexpr SYS_FORCE_INLINE T & y() noexcept
bool operator==(const Outputs &src) const
int64 opInputs_inputtype(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
int64 opinstOutputs_outputtype(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
constexpr SYS_FORCE_INLINE T & y() noexcept
SYS_FORCE_INLINE bool isstring() const
static void saveData(std::ostream &os, bool v)
UT_StringHolder outputvolumename
const char * getNestParmName(TempIndex fieldnum) const override
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
Batch opBatch(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & x() noexcept
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override