23 namespace SOP_AddEnums
37 using namespace UT::Literal;
72 if (usept != src.
usept)
return false;
73 if (pt != src.
pt)
return false;
74 if (weight != src.
weight)
return false;
90 for (
int i = 0; i < list.
entries(); i++)
98 buf.
appendSprintf(
"(%f, %f, %f)", list(i).pt.x(), list(i).pt.y(), list(i).pt.z());
124 if (prim != src.
prim)
return false;
125 if (closed != src.
closed)
return false;
141 for (
int i = 0; i < list.
entries(); i++)
149 buf.
appendSprintf(
"%s", (list(i).closed) ?
"true" :
"false");
169 myAttrname =
""_UTsh;
171 myAddparticlesystem =
false;
172 myParticlegroup =
""_UTsh;
173 myAppendunusedtoparticlesystem =
false;
186 if (myKeep != src.myKeep)
return false;
187 if (myPoints != src.myPoints)
return false;
188 if (myRemove != src.myRemove)
return false;
189 if (myPrims != src.myPrims)
return false;
190 if (mySwitcher != src.mySwitcher)
return false;
191 if (myGroup != src.myGroup)
return false;
192 if (myAdd != src.myAdd)
return false;
193 if (myInc != src.myInc)
return false;
194 if (myAttrname != src.myAttrname)
return false;
195 if (myClosedall != src.myClosedall)
return false;
196 if (myAddparticlesystem != src.myAddparticlesystem)
return false;
197 if (myParticlegroup != src.myParticlegroup)
return false;
198 if (myAppendunusedtoparticlesystem != src.myAppendunusedtoparticlesystem)
return false;
213 if (
true && ( (
true&&!((((graph->
getInput(nodeidx,0)>=0)==0)))) ) )
214 graph->
evalOpParm(myKeep, nodeidx,
"keep", time, 0);
218 graph->
evalOpParm(length, nodeidx,
"points", time, 0);
219 if (length < 0) length = 0;
220 myPoints.setSize(length);
227 auto && _curentry = myPoints(i);
229 _curentry.usept =
true;
231 graph->
evalOpParmInst(_curentry.usept, nodeidx,
"usept#", parmidx, offsets, time, 0, 2-1);
233 if (
true && ( (
true&&!(((_curentry.usept==0)))) ) )
234 graph->
evalOpParmInst(_curentry.pt, nodeidx,
"pt#", parmidx, offsets, time, 0, 2-1);
235 _curentry.weight = 1;
236 if (
true && ( (
true&&!(((_curentry.usept==0)))) ) )
237 graph->
evalOpParmInst(_curentry.weight, nodeidx,
"weight#", parmidx, offsets, time, 0, 2-1);
245 graph->
evalOpParm(myRemove, nodeidx,
"remove", time, 0);
249 graph->
evalOpParm(length, nodeidx,
"prims", time, 0);
250 if (length < 0) length = 0;
251 myPrims.setSize(length);
258 auto && _curentry = myPrims(i);
260 _curentry.prim =
""_UTsh;
262 graph->
evalOpParmInst(_curentry.prim, nodeidx,
"prim#", parmidx, offsets, time, 0, 2-1);
263 _curentry.closed =
false;
265 graph->
evalOpParmInst(_curentry.closed, nodeidx,
"closed#", parmidx, offsets, time, 0, 2-1);
273 graph->
evalOpParm(mySwitcher, nodeidx,
"switcher", time, 0);
276 graph->
evalOpParm(myGroup, nodeidx,
"group", time, 0);
279 graph->
evalOpParm(myAdd, nodeidx,
"add", time, 0);
281 if (
true && ( (
true&&!(((
int64(getAdd())==0))||((
int64(getAdd())==3))||((
int64(getAdd())==4)))) ) )
282 graph->
evalOpParm(myInc, nodeidx,
"inc", time, 0);
283 myAttrname =
""_UTsh;
284 if (
true && ( (
true&&!(((
int64(getAdd())!=4)))) ) )
285 graph->
evalOpParm(myAttrname, nodeidx,
"attrname", time, 0);
288 graph->
evalOpParm(myClosedall, nodeidx,
"closedall", time, 0);
289 myAddparticlesystem =
false;
291 graph->
evalOpParm(myAddparticlesystem, nodeidx,
"addparticlesystem", time, 0);
292 myParticlegroup =
""_UTsh;
293 if (
true && ( (
true&&!(((getAddparticlesystem()==0)))) ) )
294 graph->
evalOpParm(myParticlegroup, nodeidx,
"particlegroup", time, 0);
295 myAppendunusedtoparticlesystem =
false;
297 graph->
evalOpParm(myAppendunusedtoparticlesystem, nodeidx,
"appendunusedtoparticlesystem", time, 0);
313 template <
typename T>
320 if (idx.
size() != instance.
size()+1)
325 coerceValue(value, myKeep);
329 coerceValue(value, myPoints.entries());
330 else if (instance[0] < myPoints.entries())
332 auto && _data = myPoints(instance[0]);
336 coerceValue(value, _data.usept);
339 coerceValue(value, _data.pt);
342 coerceValue(value, _data.weight);
349 coerceValue(value, myRemove);
353 coerceValue(value, myPrims.entries());
354 else if (instance[0] < myPrims.entries())
356 auto && _data = myPrims(instance[0]);
360 coerceValue(value, _data.prim);
363 coerceValue(value, _data.closed);
370 coerceValue(value, mySwitcher);
373 coerceValue(value, myGroup);
376 coerceValue(value, myAdd);
379 coerceValue(value, myInc);
382 coerceValue(value, myAttrname);
385 coerceValue(value, myClosedall);
388 coerceValue(value, myAddparticlesystem);
391 coerceValue(value, myParticlegroup);
394 coerceValue(value, myAppendunusedtoparticlesystem);
410 { doGetParmValue(idx, instance, value); }
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 template <
typename T>
439 if (idx.
size() != instance.
size()+1)
444 coerceValue(myKeep, ( ( value ) ));
450 coerceValue(newsize, value);
451 if (newsize < 0) newsize = 0;
452 myPoints.setSize(newsize);
458 myPoints.setSizeIfNeeded(instance[0]+1);
459 auto && _data = myPoints(instance[0]);
463 coerceValue(_data.usept, value);
466 coerceValue(_data.pt, value);
469 coerceValue(_data.weight, value);
476 coerceValue(myRemove, ( ( value ) ));
482 coerceValue(newsize, value);
483 if (newsize < 0) newsize = 0;
484 myPrims.setSize(newsize);
490 myPrims.setSizeIfNeeded(instance[0]+1);
491 auto && _data = myPrims(instance[0]);
495 coerceValue(_data.prim, value);
498 coerceValue(_data.closed, value);
505 coerceValue(mySwitcher, ( ( value ) ));
508 coerceValue(myGroup, ( ( value ) ));
511 coerceValue(myAdd, clampMinValue(0, clampMaxValue(4, value ) ));
514 coerceValue(myInc, clampMinValue(1, ( value ) ));
517 coerceValue(myAttrname, ( ( value ) ));
520 coerceValue(myClosedall, ( ( value ) ));
523 coerceValue(myAddparticlesystem, ( ( value ) ));
526 coerceValue(myParticlegroup, ( ( value ) ));
529 coerceValue(myAppendunusedtoparticlesystem, ( ( value ) ));
536 { doSetParmValue(idx, instance, value); }
538 { doSetParmValue(idx, instance, value); }
540 { doSetParmValue(idx, instance, value); }
542 { doSetParmValue(idx, instance, value); }
544 { doSetParmValue(idx, instance, value); }
546 { doSetParmValue(idx, instance, value); }
548 { doSetParmValue(idx, instance, value); }
550 { doSetParmValue(idx, instance, value); }
552 { doSetParmValue(idx, instance, value); }
554 { doSetParmValue(idx, instance, value); }
556 { doSetParmValue(idx, instance, value); }
576 if (fieldnum.
size() < 1)
583 if (fieldnum.
size() == 1)
599 if (fieldnum.
size() == 1)
623 return "addparticlesystem";
625 return "particlegroup";
627 return "appendunusedtoparticlesystem";
635 if (fieldnum.
size() < 1)
636 return PARM_UNSUPPORTED;
642 if (fieldnum.
size() == 1)
643 return PARM_MULTIPARM;
654 return PARM_UNSUPPORTED;
658 if (fieldnum.
size() == 1)
659 return PARM_MULTIPARM;
668 return PARM_UNSUPPORTED;
689 return PARM_UNSUPPORTED;
725 loadData(is, rampdata);
743 int typelen = colon - data.
buffer();
757 {
int64 iv =
v; UTwrite(os, &iv); }
759 { UTwrite<fpreal64>(os, &
v); }
761 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
763 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
764 UTwrite<fpreal64>(os, &v.
z()); }
766 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
767 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
779 if (s) s->save(ostr);
781 saveData(os, result);
788 ostr << s->getDataTypeToken();
793 saveData(os, result);
797 void save(std::ostream &os)
const
801 saveData(os, myKeep);
804 UTwrite(os, &length);
807 auto && _curentry = myPoints(i);
809 saveData(os, _curentry.usept);
810 saveData(os, _curentry.pt);
811 saveData(os, _curentry.weight);
815 saveData(os, myRemove);
818 UTwrite(os, &length);
821 auto && _curentry = myPrims(i);
823 saveData(os, _curentry.prim);
824 saveData(os, _curentry.closed);
828 saveData(os, mySwitcher);
829 saveData(os, myGroup);
832 saveData(os, myAttrname);
833 saveData(os, myClosedall);
834 saveData(os, myAddparticlesystem);
835 saveData(os, myParticlegroup);
836 saveData(os, myAppendunusedtoparticlesystem);
849 loadData(is, myKeep);
853 myPoints.setSize(length);
856 auto && _curentry = myPoints(i);
858 loadData(is, _curentry.usept);
859 loadData(is, _curentry.pt);
860 loadData(is, _curentry.weight);
864 loadData(is, myRemove);
868 myPrims.setSize(length);
871 auto && _curentry = myPrims(i);
873 loadData(is, _curentry.prim);
874 loadData(is, _curentry.closed);
878 loadData(is, mySwitcher);
879 loadData(is, myGroup);
882 loadData(is, myAttrname);
883 loadData(is, myClosedall);
884 loadData(is, myAddparticlesystem);
885 loadData(is, myParticlegroup);
886 loadData(is, myAppendunusedtoparticlesystem);
896 if (!thissop)
return getKeep();
898 OP_Utils::evalOpParm(result, thissop,
"keep", cookparms.
getCookTime(), 0);
906 if (!thissop)
return getPoints().entries();
908 OP_Utils::evalOpParm(result, thissop,
"points", cookparms.
getCookTime(), 0);
912 {
return opinstPoints_usept(cookparms, &_idx); }
916 if (!thissop)
return (myPoints(_idx[0]).usept);
918 _parmidx[1-1] = _idx[1-1] + 0;
921 OP_Utils::evalOpParmInst(result, thissop,
"usept#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
925 {
return opinstPoints_pt(cookparms, &_idx); }
929 if (!thissop)
return (myPoints(_idx[0]).pt);
931 _parmidx[1-1] = _idx[1-1] + 0;
934 OP_Utils::evalOpParmInst(result, thissop,
"pt#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
938 {
return opinstPoints_weight(cookparms, &_idx); }
942 if (!thissop)
return (myPoints(_idx[0]).weight);
944 _parmidx[1-1] = _idx[1-1] + 0;
947 OP_Utils::evalOpParmInst(result, thissop,
"weight#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
956 if (!thissop)
return getRemove();
958 OP_Utils::evalOpParm(result, thissop,
"remove", cookparms.
getCookTime(), 0);
966 if (!thissop)
return getPrims().entries();
968 OP_Utils::evalOpParm(result, thissop,
"prims", cookparms.
getCookTime(), 0);
972 {
return opinstPrims_prim(cookparms, &_idx); }
976 if (!thissop)
return (myPrims(_idx[0]).prim);
978 _parmidx[1-1] = _idx[1-1] + 0;
981 OP_Utils::evalOpParmInst(result, thissop,
"prim#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
985 {
return opinstPrims_closed(cookparms, &_idx); }
989 if (!thissop)
return (myPrims(_idx[0]).closed);
991 _parmidx[1-1] = _idx[1-1] + 0;
994 OP_Utils::evalOpParmInst(result, thissop,
"closed#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1003 if (!thissop)
return getSwitcher();
1005 OP_Utils::evalOpParm(result, thissop,
"switcher", cookparms.
getCookTime(), 0);
1013 if (!thissop)
return getGroup();
1015 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
1023 if (!thissop)
return getAdd();
1025 OP_Utils::evalOpParm(result, thissop,
"add", cookparms.
getCookTime(), 0);
1033 if (!thissop)
return getInc();
1035 OP_Utils::evalOpParm(result, thissop,
"inc", cookparms.
getCookTime(), 0);
1043 if (!thissop)
return getAttrname();
1045 OP_Utils::evalOpParm(result, thissop,
"attrname", cookparms.
getCookTime(), 0);
1053 if (!thissop)
return getClosedall();
1055 OP_Utils::evalOpParm(result, thissop,
"closedall", cookparms.
getCookTime(), 0);
1063 if (!thissop)
return getAddparticlesystem();
1065 OP_Utils::evalOpParm(result, thissop,
"addparticlesystem", cookparms.
getCookTime(), 0);
1073 if (!thissop)
return getParticlegroup();
1075 OP_Utils::evalOpParm(result, thissop,
"particlegroup", cookparms.
getCookTime(), 0);
1083 if (!thissop)
return getAppendunusedtoparticlesystem();
1085 OP_Utils::evalOpParm(result, thissop,
"appendunusedtoparticlesystem", cookparms.
getCookTime(), 0);
1100 bool myAddparticlesystem;
1102 bool myAppendunusedtoparticlesystem;
const UT_StringHolder & getGroup() const
bool operator==(const SOP_AddParms &src) const
bool isParmColorRamp(exint idx) const override
GLenum GLuint GLenum GLsizei const GLchar * buf
fpreal64 opPoints_weight(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool opClosedall(const SOP_NodeVerb::CookParms &cookparms) const
bool operator==(const Prims &src) const
const UT_StringHolder & getParticlegroup() const
static void saveData(std::ostream &os, UT_Matrix3D v)
SOP_Node * getNode() const
const UT_StringHolder & getAttrname() const
static void saveData(std::ostream &os, UT_Matrix2D v)
const char * getNestParmName(TempIndex fieldnum) const override
bool opKeep(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector2D &v)
bool operator!=(const SOP_AddParms &src) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
exint bread(int32 *buffer, exint asize=1)
bool opPrims_closed(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
static void loadData(UT_IStream &is, UT_Vector4I &v)
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
bool opPoints_usept(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setSwitcher(int64 val)
const OP_Context & context() const
void setClosedall(bool val)
constexpr SYS_FORCE_INLINE T & z() noexcept
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE const char * buffer() const
static void loadData(UT_IStream &is, UT_StringHolder &v)
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
void setPrims(const UT_Array< Prims > &val)
GLuint GLsizei GLsizei * length
An output stream object that owns its own string buffer storage.
static void saveData(std::ostream &os, UT_Vector4D v)
**But if you need a result
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
static void saveData(std::ostream &os, UT_StringHolder s)
void setParticlegroup(const UT_StringHolder &val)
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
UT_StringHolder createString(const UT_Array< Prims > &list) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &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.
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
virtual NodeIdx getInput(NodeIdx idx, int input, bool markused=false) const =0
constexpr SYS_FORCE_INLINE T & x() noexcept
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
static void saveData(std::ostream &os, UT_Matrix4D v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
static void loadData(UT_IStream &is, UT_Matrix4D &v)
GLuint GLsizei const GLuint const GLintptr * offsets
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
constexpr SYS_FORCE_INLINE T & x() noexcept
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
static void loadData(UT_IStream &is, int64 &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
static void loadData(UT_IStream &is, UT_Matrix3D &v)
bool opinstPrims_closed(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
SYS_FORCE_INLINE const char * buffer() const
bool operator==(const Points &src) const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
constexpr SYS_FORCE_INLINE T & z() noexcept
bool getAppendunusedtoparticlesystem() const
UT_Vector3D opinstPoints_pt(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void copyFrom(const OP_NodeParms *src) override
exint read(bool *array, exint sz=1)
bool opAddparticlesystem(const SOP_NodeVerb::CookParms &cookparms) const
const OP_GraphProxy * graph() const
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
exint opPoints(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
ParmType getNestParmType(TempIndex fieldnum) const override
UT_Vector3D opPoints_pt(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
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
exint opPrims(const SOP_NodeVerb::CookParms &cookparms) const
bool getAddparticlesystem() const
UT_Vector3T< fpreal64 > UT_Vector3D
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
bool opRemove(const SOP_NodeVerb::CookParms &cookparms) const
int64 opSwitcher(const SOP_NodeVerb::CookParms &cookparms) const
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
SYS_FORCE_INLINE UT_StringHolder getToken(Add enum_value)
bool opinstPoints_usept(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void saveData(std::ostream &os, UT_Vector3D v)
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
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
GT_API const UT_StringHolder version
static void loadData(UT_IStream &is, fpreal64 &v)
exint entries() const
Alias of size(). size() is preferred.
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
bool operator!=(const Points &src) const
static void saveData(std::ostream &os, bool v)
int int appendSprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
bool load(UT_IStream &is)
UT_StringHolder opAttrname(const SOP_NodeVerb::CookParms &cookparms) const
bool operator!=(const Prims &src) const
int64 getSwitcher() const
int64 opInc(const SOP_NodeVerb::CookParms &cookparms) const
void setAppendunusedtoparticlesystem(bool val)
DEP_MicroNode * depnode() const
UT_StringHolder opinstPrims_prim(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void setGroup(const UT_StringHolder &val)
Add opAdd(const SOP_NodeVerb::CookParms &cookparms) const
LeafData & operator=(const LeafData &)=delete
bool getClosedall() const
Utility class for containing a color ramp.
static void saveData(std::ostream &os, int64 v)
const UT_Array< Points > & getPoints() const
constexpr SYS_FORCE_INLINE T & w() noexcept
SYS_FORCE_INLINE void append(char character)
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
fpreal64 opinstPoints_weight(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void loadData(UT_IStream &is, bool &v)
static void loadData(UT_IStream &is, UT_Vector2I &v)
const UT_Array< Prims > & getPrims() const
static void loadData(UT_IStream &is, UT_Vector3I &v)
fpreal getCookTime() const
void setPoints(const UT_Array< Points > &val)
UT_StringHolder opPrims_prim(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setAttrname(const UT_StringHolder &val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
const char * findChar(int c) const
void setAddparticlesystem(bool val)
static void saveData(std::ostream &os, fpreal64 v)
static void loadData(UT_IStream &is, UT_Vector3D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
constexpr SYS_FORCE_INLINE T & y() noexcept
static void loadData(UT_IStream &is, UT_Matrix2D &v)
static void saveData(std::ostream &os, PRM_DataItemHandle s)
UT_StringHolder opParticlegroup(const SOP_NodeVerb::CookParms &cookparms) const
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
void save(std::ostream &os) const
bool opAppendunusedtoparticlesystem(const SOP_NodeVerb::CookParms &cookparms) const
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
static void saveData(std::ostream &os, UT_Vector2D v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
constexpr SYS_FORCE_INLINE T & y() noexcept
SYS_FORCE_INLINE bool isstring() const
void loadFromOpSubclass(const LoadParms &loadparms) override
static void loadData(UT_IStream &is, UT_Vector4D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
constexpr SYS_FORCE_INLINE T & x() noexcept
UT_StringHolder createString(const UT_Array< Points > &list) const