23 namespace SOP_VolumeVopEnums
36 using namespace UT::Literal;
62 bindprimname =
""_UTsh;
71 if (bindprim != src.
bindprim)
return false;
72 if (bindname != src.
bindname)
return false;
88 for (
int i = 0; i < list.
entries(); i++)
111 myShoppath =
""_UTsh;
112 myScript =
"null"_UTsh;
113 myVop_compiler =
"vcc -q $VOP_INCLUDEPATH -o $VOP_OBJECTFILE -e $VOP_ERRORFILE $VOP_SOURCEFILE"_UTsh;
115 myExportList =
"*"_UTsh;
116 myEnforcePrototypes =
false;
117 myStrictVariables =
true;
118 myVex_cwdpath =
""_UTsh;
119 myVex_outputmask =
"*"_UTsh;
120 myVex_multithread =
true;
121 myPruneVDBBlocks =
true;
122 myVex_geometrygenerator =
false;
123 myVdb_signedflood =
true;
126 myBindings.setSize(0);
127 myVexPrecision =
"auto"_UTsh;
140 if (myVexsrc != src.myVexsrc)
return false;
141 if (myShoppath != src.myShoppath)
return false;
142 if (myScript != src.myScript)
return false;
143 if (myVop_compiler != src.myVop_compiler)
return false;
144 if (mySnippet != src.mySnippet)
return false;
145 if (myExportList != src.myExportList)
return false;
146 if (myEnforcePrototypes != src.myEnforcePrototypes)
return false;
147 if (myStrictVariables != src.myStrictVariables)
return false;
148 if (myVex_cwdpath != src.myVex_cwdpath)
return false;
149 if (myVex_outputmask != src.myVex_outputmask)
return false;
150 if (myVex_multithread != src.myVex_multithread)
return false;
151 if (myPruneVDBBlocks != src.myPruneVDBBlocks)
return false;
152 if (myVex_geometrygenerator != src.myVex_geometrygenerator)
return false;
153 if (myVdb_signedflood != src.myVdb_signedflood)
return false;
154 if (myAutobind != src.myAutobind)
return false;
155 if (myBindeach != src.myBindeach)
return false;
156 if (myBindings != src.myBindings)
return false;
157 if (myVexPrecision != src.myVexPrecision)
return false;
176 graph->
evalOpParm(myVexsrc, nodeidx,
"vexsrc", time, graph->
isDirect()?
nullptr:depnode);
177 myShoppath =
""_UTsh;
178 if (
true && ( (
true&&!(((
int64(getVexsrc())!=1)))) ) )
179 graph->
evalOpParm(myShoppath, nodeidx,
"shoppath", time, graph->
isDirect()?
nullptr:depnode);
180 myScript =
"null"_UTsh;
181 if (
true && ( (
true&&!(((
int64(getVexsrc())!=2)))) ) )
182 graph->
evalOpParm(myScript, nodeidx,
"script", time, graph->
isDirect()?
nullptr:depnode);
183 myVop_compiler =
"vcc -q $VOP_INCLUDEPATH -o $VOP_OBJECTFILE -e $VOP_ERRORFILE $VOP_SOURCEFILE"_UTsh;
184 if (
true && ( (
true&&!(((
int64(getVexsrc())!=0)))) ) )
185 graph->
evalOpParm(myVop_compiler, nodeidx,
"vop_compiler", time, graph->
isDirect()?
nullptr:depnode);
187 if (
true && ( (
true&&!(((
int64(getVexsrc())!=3)))) ) )
188 graph->
evalOpParm(mySnippet, nodeidx,
"vexsnippet", time, graph->
isDirect()?
nullptr:depnode);
189 myExportList =
"*"_UTsh;
190 if (
true && ( (
true&&!(((
int64(getVexsrc())!=3)))) ) )
191 graph->
evalOpParm(myExportList, nodeidx,
"vex_exportlist", time, graph->
isDirect()?
nullptr:depnode);
192 myEnforcePrototypes =
false;
193 if (
true && ( (
true&&!(((
int64(getVexsrc())!=3)))) ) )
194 graph->
evalOpParm(myEnforcePrototypes, nodeidx,
"vex_strict", time, graph->
isDirect()?
nullptr:depnode);
195 myStrictVariables =
true;
196 if (
true && ( (
true&&!(((
int64(getVexsrc())!=3)))) ) )
197 graph->
evalOpParm(myStrictVariables, nodeidx,
"vex_strictvariables", time, graph->
isDirect()?
nullptr:depnode);
198 myVex_cwdpath =
""_UTsh;
200 graph->
evalOpParm(myVex_cwdpath, nodeidx,
"vex_cwdpath", time, graph->
isDirect()?
nullptr:depnode);
201 myVex_outputmask =
"*"_UTsh;
203 graph->
evalOpParm(myVex_outputmask, nodeidx,
"vex_outputmask", time, graph->
isDirect()?
nullptr:depnode);
204 myVex_multithread =
true;
206 graph->
evalOpParm(myVex_multithread, nodeidx,
"vex_multithread", time, graph->
isDirect()?
nullptr:depnode);
207 myPruneVDBBlocks =
true;
209 graph->
evalOpParm(myPruneVDBBlocks, nodeidx,
"prunevdbblocks", time, graph->
isDirect()?
nullptr:depnode);
210 myVex_geometrygenerator =
false;
212 graph->
evalOpParm(myVex_geometrygenerator, nodeidx,
"vex_geometrygenerator", time, graph->
isDirect()?
nullptr:depnode);
213 myVdb_signedflood =
true;
215 graph->
evalOpParm(myVdb_signedflood, nodeidx,
"vdb_signedflood", time, graph->
isDirect()?
nullptr:depnode);
218 graph->
evalOpParm(myAutobind, nodeidx,
"autobind", time, graph->
isDirect()?
nullptr:depnode);
220 if (
true && ( (
true&&!(((getAutobind()==1)))) ) )
221 graph->
evalOpParm(myBindeach, nodeidx,
"bindeach", time, graph->
isDirect()?
nullptr:depnode);
222 if (
true && ( (!(((getAutobind()==1))||((getBindeach()==1)))) ) )
225 graph->
evalOpParm(length, nodeidx,
"bindings", time, graph->
isDirect()?
nullptr:depnode);
226 if (length < 0) length = 0;
227 myBindings.setSize(length);
234 auto && _curentry = myBindings(i);
236 _curentry.bindprimname =
""_UTsh;
237 if (
true && ( (!(((getAutobind()==1))||((getBindeach()==1)))) ) && ( (
true&&!(((getAutobind()==1))||((getBindeach()==1))||((getAutobind()==1))||((getBindeach()==1)))) ) )
238 graph->
evalOpParmInst(_curentry.bindprimname, nodeidx,
"bindprimname#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
239 _curentry.bindprim = 0;
240 if (
true && ( (!(((getAutobind()==1))||((getBindeach()==1)))) ) && ( (
true&&!(((getAutobind()==1))||((getBindeach()==1))||((getAutobind()==1))||((getBindeach()==1)))) ) )
241 graph->
evalOpParmInst(_curentry.bindprim, nodeidx,
"bindprim#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
242 _curentry.bindname =
""_UTsh;
243 if (
true && ( (!(((getAutobind()==1))||((getBindeach()==1)))) ) && ( (
true&&!(((getAutobind()==1))||((getBindeach()==1))||((getAutobind()==1))||((getBindeach()==1)))) ) )
244 graph->
evalOpParmInst(_curentry.bindname, nodeidx,
"bindname#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
250 myVexPrecision =
"auto"_UTsh;
252 graph->
evalOpParm(myVexPrecision, nodeidx,
"vex_precision", time, graph->
isDirect()?
nullptr:depnode);
268 template <
typename T>
275 if (idx.
size() != instance.
size()+1)
280 coerceValue(value, myVexsrc);
283 coerceValue(value, myShoppath);
286 coerceValue(value, myScript);
289 coerceValue(value, myVop_compiler);
292 coerceValue(value, mySnippet);
295 coerceValue(value, myExportList);
298 coerceValue(value, myEnforcePrototypes);
301 coerceValue(value, myStrictVariables);
304 coerceValue(value, myVex_cwdpath);
307 coerceValue(value, myVex_outputmask);
310 coerceValue(value, myVex_multithread);
313 coerceValue(value, myPruneVDBBlocks);
316 coerceValue(value, myVex_geometrygenerator);
319 coerceValue(value, myVdb_signedflood);
322 coerceValue(value, myAutobind);
325 coerceValue(value, myBindeach);
329 coerceValue(value, myBindings.entries());
330 else if (instance[0] < myBindings.entries())
332 auto && _data = myBindings(instance[0]);
336 coerceValue(value, _data.bindprimname);
339 coerceValue(value, _data.bindprim);
342 coerceValue(value, _data.bindname);
349 coerceValue(value, myVexPrecision);
365 { doGetParmValue(idx, instance, value); }
367 { doGetParmValue(idx, instance, value); }
369 { doGetParmValue(idx, instance, value); }
371 { doGetParmValue(idx, instance, value); }
373 { doGetParmValue(idx, instance, value); }
375 { doGetParmValue(idx, instance, value); }
377 { doGetParmValue(idx, instance, value); }
379 { doGetParmValue(idx, instance, value); }
381 { doGetParmValue(idx, instance, value); }
383 { doGetParmValue(idx, instance, value); }
385 { doGetParmValue(idx, instance, value); }
387 template <
typename T>
394 if (idx.
size() != instance.
size()+1)
399 coerceValue(myVexsrc, clampMinValue(0, clampMaxValue(3, value ) ));
402 coerceValue(myShoppath, ( ( value ) ));
405 coerceValue(myScript, ( ( value ) ));
408 coerceValue(myVop_compiler, ( ( value ) ));
411 coerceValue(mySnippet, ( ( value ) ));
414 coerceValue(myExportList, ( ( value ) ));
417 coerceValue(myEnforcePrototypes, ( ( value ) ));
420 coerceValue(myStrictVariables, ( ( value ) ));
423 coerceValue(myVex_cwdpath, ( ( value ) ));
426 coerceValue(myVex_outputmask, ( ( value ) ));
429 coerceValue(myVex_multithread, ( ( value ) ));
432 coerceValue(myPruneVDBBlocks, ( ( value ) ));
435 coerceValue(myVex_geometrygenerator, ( ( value ) ));
438 coerceValue(myVdb_signedflood, ( ( value ) ));
441 coerceValue(myAutobind, ( ( value ) ));
444 coerceValue(myBindeach, ( ( value ) ));
450 coerceValue(newsize, value);
451 if (newsize < 0) newsize = 0;
452 myBindings.setSize(newsize);
458 myBindings.setSizeIfNeeded(instance[0]+1);
459 auto && _data = myBindings(instance[0]);
463 coerceValue(_data.bindprimname, value);
466 coerceValue(_data.bindprim, value);
469 coerceValue(_data.bindname, value);
476 coerceValue(myVexPrecision, ( ( value ) ));
483 { doSetParmValue(idx, instance, value); }
485 { doSetParmValue(idx, instance, value); }
487 { doSetParmValue(idx, instance, value); }
489 { doSetParmValue(idx, instance, value); }
491 { doSetParmValue(idx, instance, value); }
493 { doSetParmValue(idx, instance, value); }
495 { doSetParmValue(idx, instance, value); }
497 { doSetParmValue(idx, instance, value); }
499 { doSetParmValue(idx, instance, value); }
501 { doSetParmValue(idx, instance, value); }
503 { doSetParmValue(idx, instance, value); }
521 if (fieldnum.
size() < 1)
532 return "vop_compiler";
536 return "vex_exportlist";
540 return "vex_strictvariables";
542 return "vex_cwdpath";
544 return "vex_outputmask";
546 return "vex_multithread";
548 return "prunevdbblocks";
550 return "vex_geometrygenerator";
552 return "vdb_signedflood";
558 if (fieldnum.
size() == 1)
563 return "bindprimname#";
572 return "vex_precision";
580 if (fieldnum.
size() < 1)
581 return PARM_UNSUPPORTED;
617 if (fieldnum.
size() == 1)
618 return PARM_MULTIPARM;
629 return PARM_UNSUPPORTED;
634 return PARM_UNSUPPORTED;
670 loadData(is, rampdata);
688 int typelen = colon - data.
buffer();
702 {
int64 iv =
v; UTwrite(os, &iv); }
704 { UTwrite<fpreal64>(os, &
v); }
706 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
708 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
709 UTwrite<fpreal64>(os, &v.
z()); }
711 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
712 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
724 if (s) s->save(ostr);
726 saveData(os, result);
733 ostr << s->getDataTypeToken();
738 saveData(os, result);
742 void save(std::ostream &os)
const
746 saveData(os, myVexsrc);
747 saveData(os, myShoppath);
748 saveData(os, myScript);
749 saveData(os, myVop_compiler);
750 saveData(os, mySnippet);
751 saveData(os, myExportList);
752 saveData(os, myEnforcePrototypes);
753 saveData(os, myStrictVariables);
754 saveData(os, myVex_cwdpath);
755 saveData(os, myVex_outputmask);
756 saveData(os, myVex_multithread);
757 saveData(os, myPruneVDBBlocks);
758 saveData(os, myVex_geometrygenerator);
759 saveData(os, myVdb_signedflood);
760 saveData(os, myAutobind);
761 saveData(os, myBindeach);
764 UTwrite(os, &length);
767 auto && _curentry = myBindings(i);
769 saveData(os, _curentry.bindprimname);
770 saveData(os, _curentry.bindprim);
771 saveData(os, _curentry.bindname);
775 saveData(os, myVexPrecision);
788 loadData(is, myVexsrc);
789 loadData(is, myShoppath);
790 loadData(is, myScript);
791 loadData(is, myVop_compiler);
792 loadData(is, mySnippet);
793 loadData(is, myExportList);
794 loadData(is, myEnforcePrototypes);
795 loadData(is, myStrictVariables);
796 loadData(is, myVex_cwdpath);
797 loadData(is, myVex_outputmask);
798 loadData(is, myVex_multithread);
799 loadData(is, myPruneVDBBlocks);
800 loadData(is, myVex_geometrygenerator);
801 loadData(is, myVdb_signedflood);
802 loadData(is, myAutobind);
803 loadData(is, myBindeach);
807 myBindings.setSize(length);
810 auto && _curentry = myBindings(i);
812 loadData(is, _curentry.bindprimname);
813 loadData(is, _curentry.bindprim);
814 loadData(is, _curentry.bindname);
818 loadData(is, myVexPrecision);
828 if (!thissop)
return getVexsrc();
830 OP_Utils::evalOpParm(result, thissop,
"vexsrc", cookparms.
getCookTime(), 0);
838 if (!thissop)
return getShoppath();
840 OP_Utils::evalOpParm(result, thissop,
"shoppath", cookparms.
getCookTime(), 0);
848 if (!thissop)
return getScript();
850 OP_Utils::evalOpParm(result, thissop,
"script", cookparms.
getCookTime(), 0);
858 if (!thissop)
return getVop_compiler();
860 OP_Utils::evalOpParm(result, thissop,
"vop_compiler", cookparms.
getCookTime(), 0);
868 if (!thissop)
return getSnippet();
870 OP_Utils::evalOpParm(result, thissop,
"vexsnippet", cookparms.
getCookTime(), 0);
878 if (!thissop)
return getExportList();
880 OP_Utils::evalOpParm(result, thissop,
"vex_exportlist", cookparms.
getCookTime(), 0);
888 if (!thissop)
return getEnforcePrototypes();
890 OP_Utils::evalOpParm(result, thissop,
"vex_strict", cookparms.
getCookTime(), 0);
898 if (!thissop)
return getStrictVariables();
900 OP_Utils::evalOpParm(result, thissop,
"vex_strictvariables", cookparms.
getCookTime(), 0);
908 if (!thissop)
return getVex_cwdpath();
910 OP_Utils::evalOpParm(result, thissop,
"vex_cwdpath", cookparms.
getCookTime(), 0);
918 if (!thissop)
return getVex_outputmask();
920 OP_Utils::evalOpParm(result, thissop,
"vex_outputmask", cookparms.
getCookTime(), 0);
928 if (!thissop)
return getVex_multithread();
930 OP_Utils::evalOpParm(result, thissop,
"vex_multithread", cookparms.
getCookTime(), 0);
938 if (!thissop)
return getPruneVDBBlocks();
940 OP_Utils::evalOpParm(result, thissop,
"prunevdbblocks", cookparms.
getCookTime(), 0);
948 if (!thissop)
return getVex_geometrygenerator();
950 OP_Utils::evalOpParm(result, thissop,
"vex_geometrygenerator", cookparms.
getCookTime(), 0);
958 if (!thissop)
return getVdb_signedflood();
960 OP_Utils::evalOpParm(result, thissop,
"vdb_signedflood", cookparms.
getCookTime(), 0);
968 if (!thissop)
return getAutobind();
970 OP_Utils::evalOpParm(result, thissop,
"autobind", cookparms.
getCookTime(), 0);
978 if (!thissop)
return getBindeach();
980 OP_Utils::evalOpParm(result, thissop,
"bindeach", cookparms.
getCookTime(), 0);
988 if (!thissop)
return getBindings().entries();
990 OP_Utils::evalOpParm(result, thissop,
"bindings", cookparms.
getCookTime(), 0);
994 {
return opinstBindings_bindprimname(cookparms, &_idx); }
998 if (!thissop)
return (myBindings(_idx[0]).bindprimname);
1000 _parmidx[1-1] = _idx[1-1] + 1;
1003 OP_Utils::evalOpParmInst(result, thissop,
"bindprimname#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1007 {
return opinstBindings_bindprim(cookparms, &_idx); }
1011 if (!thissop)
return (myBindings(_idx[0]).bindprim);
1013 _parmidx[1-1] = _idx[1-1] + 1;
1016 OP_Utils::evalOpParmInst(result, thissop,
"bindprim#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1020 {
return opinstBindings_bindname(cookparms, &_idx); }
1024 if (!thissop)
return (myBindings(_idx[0]).bindname);
1026 _parmidx[1-1] = _idx[1-1] + 1;
1029 OP_Utils::evalOpParmInst(result, thissop,
"bindname#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1038 if (!thissop)
return getVexPrecision();
1040 OP_Utils::evalOpParm(result, thissop,
"vex_precision", cookparms.
getCookTime(), 0);
1051 bool myEnforcePrototypes;
1052 bool myStrictVariables;
1055 bool myVex_multithread;
1056 bool myPruneVDBBlocks;
1057 bool myVex_geometrygenerator;
1058 bool myVdb_signedflood;
static void saveData(std::ostream &os, UT_Matrix4D v)
static void loadData(UT_IStream &is, UT_Vector3D &v)
GLenum GLuint GLenum GLsizei const GLchar * buf
UT_StringHolder opinstBindings_bindprimname(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
SOP_Node * getNode() const
static void saveData(std::ostream &os, UT_Vector4D v)
void setSnippet(const UT_StringHolder &val)
const UT_StringHolder & getSnippet() const
UT_StringHolder opinstBindings_bindname(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool getVex_multithread() const
static void saveData(std::ostream &os, int64 v)
void setBindeach(bool val)
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
bool opVex_geometrygenerator(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getShoppath() const
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
UT_StringHolder bindprimname
exint getNestNumParms(TempIndex idx) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
void copyFrom(const OP_NodeParms *src) override
GLsizei const GLfloat * value
static void loadData(UT_IStream &is, int64 &v)
static void loadData(UT_IStream &is, UT_Vector2I &v)
bool opVdb_signedflood(const SOP_NodeVerb::CookParms &cookparms) const
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
const OP_Context & context() const
const char * getNestParmName(TempIndex fieldnum) const override
constexpr SYS_FORCE_INLINE T & z() noexcept
bool getStrictVariables() const
SYS_FORCE_INLINE const char * buffer() const
void setVex_geometrygenerator(bool val)
int64 opinstBindings_bindprim(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
UT_StringHolder opShoppath(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, bool v)
GLuint GLsizei GLsizei * length
An output stream object that owns its own string buffer storage.
void setVexPrecision(const UT_StringHolder &val)
**But if you need a result
void setVex_cwdpath(const UT_StringHolder &val)
void setStrictVariables(bool val)
void setBindings(const UT_Array< Bindings > &val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
UT_StringHolder opExportList(const SOP_NodeVerb::CookParms &cookparms) 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 setVexsrc(Vexsrc val)
UT_StringHolder opVex_cwdpath(const SOP_NodeVerb::CookParms &cookparms) const
bool operator==(const SOP_VolumeVopParms &src) const
static void saveData(std::ostream &os, fpreal64 v)
constexpr SYS_FORCE_INLINE T & x() noexcept
void setEnforcePrototypes(bool val)
GLuint GLsizei const GLuint const GLintptr * offsets
const UT_StringHolder & getVexPrecision() const
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
constexpr SYS_FORCE_INLINE T & x() noexcept
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
bool opStrictVariables(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getScript() const
UT_StringHolder opVop_compiler(const SOP_NodeVerb::CookParms &cookparms) const
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Vexsrc opVexsrc(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
void loadFromOpSubclass(const LoadParms &loadparms) override
bool operator!=(const Bindings &src) 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 setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
bool getPruneVDBBlocks() const
exint read(bool *array, exint sz=1)
const OP_GraphProxy * graph() const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
void setAutobind(bool val)
SYS_FORCE_INLINE UT_StringHolder getToken(Vexsrc enum_value)
bool isParmColorRamp(exint idx) const override
static void loadData(UT_IStream &is, bool &v)
const UT_StringHolder & getVex_cwdpath() const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
bool getEnforcePrototypes() const
UT_StringHolder opVexPrecision(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
static void loadData(UT_IStream &is, UT_Vector4I &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
static void loadData(UT_IStream &is, UT_Matrix3D &v)
bool opBindeach(const SOP_NodeVerb::CookParms &cookparms) const
void setExportList(const UT_StringHolder &val)
UT_StringHolder opBindings_bindname(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool operator==(const Bindings &src) const
void setVop_compiler(const UT_StringHolder &val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
SYS_FORCE_INLINE void strcat(const char *src)
void saveBinary(std::ostream &os) const
Save string to binary stream.
UT_StringHolder opSnippet(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
GT_API const UT_StringHolder version
exint entries() const
Alias of size(). size() is preferred.
static void loadData(UT_IStream &is, UT_Matrix4D &v)
static void loadData(UT_IStream &is, UT_Vector2D &v)
static void saveData(std::ostream &os, UT_Matrix2D v)
UT_StringHolder opScript(const SOP_NodeVerb::CookParms &cookparms) const
void save(std::ostream &os) const
int int appendSprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
const UT_StringHolder & getVex_outputmask() const
static void saveData(std::ostream &os, UT_Vector3D v)
const UT_StringHolder & getExportList() const
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_Matrix3D &value) override
void setPruneVDBBlocks(bool val)
DEP_MicroNode * depnode() const
LeafData & operator=(const LeafData &)=delete
static void loadData(UT_IStream &is, fpreal64 &v)
Utility class for containing a color ramp.
static void loadData(UT_IStream &is, UT_Vector4D &v)
constexpr SYS_FORCE_INLINE T & w() noexcept
bool operator!=(const SOP_VolumeVopParms &src) const
SYS_FORCE_INLINE void append(char character)
void setVex_outputmask(const UT_StringHolder &val)
virtual UT_StringHolder baseGetSignature() const
void setVdb_signedflood(bool val)
bool opPruneVDBBlocks(const SOP_NodeVerb::CookParms &cookparms) const
bool opAutobind(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Vector2D v)
static void loadData(UT_IStream &is, UT_Matrix2D &v)
fpreal getCookTime() const
static void saveData(std::ostream &os, UT_Matrix3D v)
const UT_Array< Bindings > & getBindings() const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
const char * findChar(int c) const
void setVex_multithread(bool val)
bool getVdb_signedflood() const
UT_StringHolder opBindings_bindprimname(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool getVex_geometrygenerator() const
UT_StringHolder createString(const UT_Array< Bindings > &list) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
bool opEnforcePrototypes(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & y() noexcept
UT_StringHolder opVex_outputmask(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getVop_compiler() const
static void loadData(UT_IStream &is, UT_StringHolder &v)
ParmType getNestParmType(TempIndex fieldnum) const override
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
bool opVex_multithread(const SOP_NodeVerb::CookParms &cookparms) const
void setScript(const UT_StringHolder &val)
void setShoppath(const UT_StringHolder &val)
constexpr SYS_FORCE_INLINE T & y() noexcept
SYS_FORCE_INLINE bool isstring() const
bool load(UT_IStream &is)
static void loadData(UT_IStream &is, UT_Vector3I &v)
int64 opBindings_bindprim(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
static void saveData(std::ostream &os, UT_StringHolder s)
exint opBindings(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
constexpr SYS_FORCE_INLINE T & x() noexcept
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override