23 namespace SOP_FuseEnums
63 myKeepunusedpoints =
false;
64 myKeepconsolidatedpoints =
false;
65 myGrouppropagation = 0;
69 mySnappointpos =
true;
70 mySnappointattribs =
false;
71 myPointattribnames =
""_UTsh;
94 if (myGroup != src.myGroup)
return false;
95 if (myUsedist != src.myUsedist)
return false;
96 if (myDist != src.myDist)
return false;
97 if (myDeldegen != src.myDeldegen)
return false;
98 if (myKeepunusedpoints != src.myKeepunusedpoints)
return false;
99 if (myKeepconsolidatedpoints != src.myKeepconsolidatedpoints)
return false;
100 if (myGrouppropagation != src.myGrouppropagation)
return false;
101 if (mySwitcher != src.mySwitcher)
return false;
102 if (mySnaptype != src.mySnaptype)
return false;
103 if (myTol3d != src.myTol3d)
return false;
104 if (mySnappointpos != src.mySnappointpos)
return false;
105 if (mySnappointattribs != src.mySnappointattribs)
return false;
106 if (myPointattribnames != src.myPointattribnames)
return false;
107 if (mySnapswitcher != src.mySnapswitcher)
return false;
108 if (myGridtype != src.myGridtype)
return false;
109 if (myGridspacing != src.myGridspacing)
return false;
110 if (myGridlines != src.myGridlines)
return false;
111 if (myGridpow2 != src.myGridpow2)
return false;
112 if (myGridoffset != src.myGridoffset)
return false;
113 if (myGridround != src.myGridround)
return false;
114 if (myGridtol != src.myGridtol)
return false;
115 if (myUpdatenml != src.myUpdatenml)
return false;
116 if (myAccurate != src.myAccurate)
return false;
135 graph->
evalOpParm(myGroup, nodeidx,
"group", time, 0);
138 graph->
evalOpParm(myUsedist, nodeidx,
"usedist", time, 0);
140 if (
true && ( (
true&&!(((getUsedist()==0)))) ) )
141 graph->
evalOpParm(myDist, nodeidx,
"dist", time, 0);
144 graph->
evalOpParm(myDeldegen, nodeidx,
"deldegen", time, 0);
145 myKeepunusedpoints =
false;
147 graph->
evalOpParm(myKeepunusedpoints, nodeidx,
"keepunusedpoints", time, 0);
148 myKeepconsolidatedpoints =
false;
150 graph->
evalOpParm(myKeepconsolidatedpoints, nodeidx,
"keepconsolidatedpoints", time, 0);
151 myGrouppropagation = 0;
153 graph->
evalOpParm(myGrouppropagation, nodeidx,
"grouppropagation", time, 0);
156 graph->
evalOpParm(mySwitcher, nodeidx,
"switcher", time, 0);
159 graph->
evalOpParm(mySnaptype, nodeidx,
"snaptype", time, 0);
162 graph->
evalOpParm(myTol3d, nodeidx,
"tol3d", time, 0);
163 mySnappointpos =
true;
165 graph->
evalOpParm(mySnappointpos, nodeidx,
"snappointpos", time, 0);
166 mySnappointattribs =
false;
168 graph->
evalOpParm(mySnappointattribs, nodeidx,
"snappointattribs", time, 0);
169 myPointattribnames =
""_UTsh;
170 if (
true && ( (
true&&!(((getSnappointattribs()==0)))) ) )
171 graph->
evalOpParm(myPointattribnames, nodeidx,
"pointattribnames", time, 0);
174 graph->
evalOpParm(mySnapswitcher, nodeidx,
"snapswitcher", time, 0);
177 graph->
evalOpParm(myGridtype, nodeidx,
"gridtype", time, 0);
179 if (
true && ( (
true&&!(((
int64(getGridtype())!=0)))) ) )
180 graph->
evalOpParm(myGridspacing, nodeidx,
"gridspacing", time, 0);
182 if (
true && ( (
true&&!(((
int64(getGridtype())!=1)))) ) )
183 graph->
evalOpParm(myGridlines, nodeidx,
"gridlines", time, 0);
185 if (
true && ( (
true&&!(((
int64(getGridtype())!=2)))) ) )
186 graph->
evalOpParm(myGridpow2, nodeidx,
"gridpow2", time, 0);
189 graph->
evalOpParm(myGridoffset, nodeidx,
"gridoffset", time, 0);
192 graph->
evalOpParm(myGridround, nodeidx,
"gridround", time, 0);
195 graph->
evalOpParm(myGridtol, nodeidx,
"gridtol", time, 0);
198 graph->
evalOpParm(myUpdatenml, nodeidx,
"updatenml", time, 0);
200 if (
true && ( (
true&&!(((
int64(getSwitcher())==1))||((
int64(getSwitcher())==2)&&(
int64(getSnapswitcher())!=0)))) ) )
201 graph->
evalOpParm(myAccurate, nodeidx,
"accurate", time, 0);
217 template <
typename T>
224 if (idx.
size() != instance.
size()+1)
311 { doGetParmValue(idx, instance, value); }
313 { doGetParmValue(idx, instance, value); }
315 { doGetParmValue(idx, instance, value); }
317 { doGetParmValue(idx, instance, value); }
319 { doGetParmValue(idx, instance, value); }
321 { doGetParmValue(idx, instance, value); }
323 { doGetParmValue(idx, instance, value); }
325 { doGetParmValue(idx, instance, value); }
327 { doGetParmValue(idx, instance, value); }
329 { doGetParmValue(idx, instance, value); }
331 { doGetParmValue(idx, instance, value); }
333 template <
typename T>
340 if (idx.
size() != instance.
size()+1)
360 coerceValue(myKeepconsolidatedpoints, ( ( value ) ));
418 { doSetParmValue(idx, instance, value); }
420 { doSetParmValue(idx, instance, value); }
422 { doSetParmValue(idx, instance, value); }
424 { doSetParmValue(idx, instance, value); }
426 { doSetParmValue(idx, instance, value); }
428 { doSetParmValue(idx, instance, value); }
430 { doSetParmValue(idx, instance, value); }
432 { doSetParmValue(idx, instance, value); }
434 { doSetParmValue(idx, instance, value); }
436 { doSetParmValue(idx, instance, value); }
438 { doSetParmValue(idx, instance, value); }
454 if (fieldnum.
size() < 1)
467 return "keepunusedpoints";
469 return "keepconsolidatedpoints";
471 return "grouppropagation";
479 return "snappointpos";
481 return "snappointattribs";
483 return "pointattribnames";
485 return "snapswitcher";
489 return "gridspacing";
511 if (fieldnum.
size() < 1)
512 return PARM_UNSUPPORTED;
582 {
for (
int r = 0;
r < 2;
r++)
for (
int c = 0; c < 2; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
584 {
for (
int r = 0;
r < 3;
r++)
for (
int c = 0; c < 3; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
586 {
for (
int r = 0;
r < 4;
r++)
for (
int c = 0; c < 4; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
599 loadData(is, rampdata);
617 int typelen = colon - data.
buffer();
631 {
int64 iv =
v; UTwrite(os, &iv); }
633 { UTwrite<fpreal64>(os, &
v); }
635 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
637 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
638 UTwrite<fpreal64>(os, &v.
z()); }
640 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
641 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
653 if (s) s->save(ostr);
655 saveData(os, result);
662 ostr << s->getDataTypeToken();
667 saveData(os, result);
671 void save(std::ostream &os)
const
675 saveData(os, myGroup);
676 saveData(os, myUsedist);
677 saveData(os, myDist);
678 saveData(os, myDeldegen);
679 saveData(os, myKeepunusedpoints);
680 saveData(os, myKeepconsolidatedpoints);
681 saveData(os, myGrouppropagation);
682 saveData(os, mySwitcher);
683 saveData(os, mySnaptype);
684 saveData(os, myTol3d);
685 saveData(os, mySnappointpos);
686 saveData(os, mySnappointattribs);
687 saveData(os, myPointattribnames);
688 saveData(os, mySnapswitcher);
689 saveData(os, myGridtype);
690 saveData(os, myGridspacing);
691 saveData(os, myGridlines);
692 saveData(os, myGridpow2);
693 saveData(os, myGridoffset);
694 saveData(os, myGridround);
695 saveData(os, myGridtol);
696 saveData(os, myUpdatenml);
697 saveData(os, myAccurate);
710 loadData(is, myGroup);
711 loadData(is, myUsedist);
712 loadData(is, myDist);
713 loadData(is, myDeldegen);
714 loadData(is, myKeepunusedpoints);
715 loadData(is, myKeepconsolidatedpoints);
716 loadData(is, myGrouppropagation);
717 loadData(is, mySwitcher);
718 loadData(is, mySnaptype);
719 loadData(is, myTol3d);
720 loadData(is, mySnappointpos);
721 loadData(is, mySnappointattribs);
722 loadData(is, myPointattribnames);
723 loadData(is, mySnapswitcher);
724 loadData(is, myGridtype);
725 loadData(is, myGridspacing);
726 loadData(is, myGridlines);
727 loadData(is, myGridpow2);
728 loadData(is, myGridoffset);
729 loadData(is, myGridround);
730 loadData(is, myGridtol);
731 loadData(is, myUpdatenml);
732 loadData(is, myAccurate);
742 if (!thissop)
return getGroup();
744 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
752 if (!thissop)
return getUsedist();
754 OP_Utils::evalOpParm(result, thissop,
"usedist", cookparms.
getCookTime(), 0);
762 if (!thissop)
return getDist();
764 OP_Utils::evalOpParm(result, thissop,
"dist", cookparms.
getCookTime(), 0);
772 if (!thissop)
return getDeldegen();
774 OP_Utils::evalOpParm(result, thissop,
"deldegen", cookparms.
getCookTime(), 0);
782 if (!thissop)
return getKeepunusedpoints();
784 OP_Utils::evalOpParm(result, thissop,
"keepunusedpoints", cookparms.
getCookTime(), 0);
792 if (!thissop)
return getKeepconsolidatedpoints();
794 OP_Utils::evalOpParm(result, thissop,
"keepconsolidatedpoints", cookparms.
getCookTime(), 0);
802 if (!thissop)
return getGrouppropagation();
804 OP_Utils::evalOpParm(result, thissop,
"grouppropagation", cookparms.
getCookTime(), 0);
812 if (!thissop)
return getSwitcher();
814 OP_Utils::evalOpParm(result, thissop,
"switcher", cookparms.
getCookTime(), 0);
822 if (!thissop)
return getSnaptype();
824 OP_Utils::evalOpParm(result, thissop,
"snaptype", cookparms.
getCookTime(), 0);
832 if (!thissop)
return getTol3d();
834 OP_Utils::evalOpParm(result, thissop,
"tol3d", cookparms.
getCookTime(), 0);
842 if (!thissop)
return getSnappointpos();
844 OP_Utils::evalOpParm(result, thissop,
"snappointpos", cookparms.
getCookTime(), 0);
852 if (!thissop)
return getSnappointattribs();
854 OP_Utils::evalOpParm(result, thissop,
"snappointattribs", cookparms.
getCookTime(), 0);
862 if (!thissop)
return getPointattribnames();
864 OP_Utils::evalOpParm(result, thissop,
"pointattribnames", cookparms.
getCookTime(), 0);
872 if (!thissop)
return getSnapswitcher();
874 OP_Utils::evalOpParm(result, thissop,
"snapswitcher", cookparms.
getCookTime(), 0);
882 if (!thissop)
return getGridtype();
884 OP_Utils::evalOpParm(result, thissop,
"gridtype", cookparms.
getCookTime(), 0);
892 if (!thissop)
return getGridspacing();
894 OP_Utils::evalOpParm(result, thissop,
"gridspacing", cookparms.
getCookTime(), 0);
902 if (!thissop)
return getGridlines();
904 OP_Utils::evalOpParm(result, thissop,
"gridlines", cookparms.
getCookTime(), 0);
912 if (!thissop)
return getGridpow2();
914 OP_Utils::evalOpParm(result, thissop,
"gridpow2", cookparms.
getCookTime(), 0);
922 if (!thissop)
return getGridoffset();
924 OP_Utils::evalOpParm(result, thissop,
"gridoffset", cookparms.
getCookTime(), 0);
932 if (!thissop)
return getGridround();
934 OP_Utils::evalOpParm(result, thissop,
"gridround", cookparms.
getCookTime(), 0);
942 if (!thissop)
return getGridtol();
944 OP_Utils::evalOpParm(result, thissop,
"gridtol", cookparms.
getCookTime(), 0);
952 if (!thissop)
return getUpdatenml();
954 OP_Utils::evalOpParm(result, thissop,
"updatenml", cookparms.
getCookTime(), 0);
962 if (!thissop)
return getAccurate();
964 OP_Utils::evalOpParm(result, thissop,
"accurate", cookparms.
getCookTime(), 0);
973 bool myKeepunusedpoints;
974 bool myKeepconsolidatedpoints;
975 int64 myGrouppropagation;
980 bool mySnappointattribs;
982 int64 mySnapswitcher;
void setSnaptype(Snaptype val)
static void saveData(std::ostream &os, UT_Vector3D v)
void setPointattribnames(const UT_StringHolder &val)
UT_Vector3D getGridoffset() const
static void saveData(std::ostream &os, UT_StringHolder s)
static void saveData(std::ostream &os, int64 v)
UT_StringHolder opPointattribnames(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
SOP_Node * getNode() const
static void loadData(UT_IStream &is, UT_StringHolder &v)
int64 opSnapswitcher(const SOP_NodeVerb::CookParms &cookparms) const
void setGridlines(UT_Vector3D val)
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
T clampMaxValue(fpreal maxvalue, const T &src) const
static void loadData(UT_IStream &is, bool &v)
exint bread(int32 *buffer, exint asize=1)
static void saveData(std::ostream &os, PRM_DataItemHandle s)
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
int64 getSnapswitcher() const
UT_Vector3D opGridoffset(const SOP_NodeVerb::CookParms &cookparms) const
void copyFrom(const OP_NodeParms *src) override
static void loadData(UT_IStream &is, UT_Vector4I &v)
bool getSnappointattribs() const
static void loadData(UT_IStream &is, UT_Vector3D &v)
Grouppropagation opGrouppropagation(const SOP_NodeVerb::CookParms &cookparms) const
const OP_Context & context() const
void setGridtype(Gridtype val)
void setGrouppropagation(Grouppropagation val)
constexpr SYS_FORCE_INLINE T & z() noexcept
bool opUsedist(const SOP_NodeVerb::CookParms &cookparms) const
const char * getNestParmName(TempIndex fieldnum) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
SYS_FORCE_INLINE const char * buffer() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
bool operator==(const SOP_FuseParms &src) const
static void loadData(UT_IStream &is, UT_Vector2I &v)
An output stream object that owns its own string buffer storage.
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
**But if you need a result
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
UT_Vector3T< int64 > UT_Vector3I
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
T clampMinValue(fpreal minvalue, const T &src) const
fpreal64 getGridtol() const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
static void saveData(std::ostream &os, bool v)
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
static void loadData(UT_IStream &is, fpreal64 &v)
exint getNestNumParms(TempIndex idx) const override
void setTol3d(fpreal64 val)
static void loadData(UT_IStream &is, UT_Vector3I &v)
UT_Vector3I getGridpow2() const
bool opSnappointpos(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & x() noexcept
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
void setGridspacing(UT_Vector3D val)
static void saveData(std::ostream &os, fpreal64 v)
void setSnappointpos(bool val)
bool getSnappointpos() const
fpreal64 getTol3d() const
constexpr SYS_FORCE_INLINE T & x() noexcept
bool opSnappointattribs(const SOP_NodeVerb::CookParms &cookparms) const
void setKeepunusedpoints(bool val)
void setGridtol(fpreal64 val)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Gridround opGridround(const SOP_NodeVerb::CookParms &cookparms) const
Gridtype opGridtype(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
void loadFromOpSubclass(const LoadParms &loadparms) override
void setKeepconsolidatedpoints(bool val)
void setAccurate(bool val)
static void loadData(UT_IStream &is, UT_Matrix3D &v)
UT_Vector3I opGridpow2(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
void setGridround(Gridround val)
bool getKeepunusedpoints() const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
UT_Vector3D opGridspacing(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opTol3d(const SOP_NodeVerb::CookParms &cookparms) const
void setUpdatenml(bool val)
constexpr SYS_FORCE_INLINE T & z() noexcept
ParmType getNestParmType(TempIndex fieldnum) const override
bool operator!=(const SOP_FuseParms &src) const
const OP_GraphProxy * graph() const
bool opUpdatenml(const SOP_NodeVerb::CookParms &cookparms) const
bool opAccurate(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
const UT_StringHolder & getPointattribnames() const
const UT_StringHolder & getGroup() const
static void loadData(UT_IStream &is, int64 &v)
void save(std::ostream &os) const
UT_Vector3T< fpreal64 > UT_Vector3D
Snaptype getSnaptype() const
bool load(UT_IStream &is)
bool getKeepconsolidatedpoints() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
void setSwitcher(int64 val)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
static void saveData(std::ostream &os, UT_Matrix4D v)
void saveBinary(std::ostream &os) const
Save string to binary stream.
GT_API const UT_StringHolder version
int64 opSwitcher(const SOP_NodeVerb::CookParms &cookparms) const
bool getUpdatenml() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
Grouppropagation getGrouppropagation() const
UT_Vector3D getGridlines() const
void setGridoffset(UT_Vector3D val)
static void loadData(UT_IStream &is, UT_Vector2D &v)
fpreal64 opGridtol(const SOP_NodeVerb::CookParms &cookparms) const
Gridtype getGridtype() const
UT_Vector3D getGridspacing() const
void coerceValue(T &result, const S &src) const
static void saveData(std::ostream &os, UT_Vector2D v)
void setUsedist(bool val)
bool isParmColorRamp(exint idx) const override
Gridround getGridround() const
void setGridpow2(UT_Vector3I val)
DEP_MicroNode * depnode() const
Utility class for containing a color ramp.
static void saveData(std::ostream &os, UT_Matrix2D v)
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
void setDist(fpreal64 val)
constexpr SYS_FORCE_INLINE T & w() noexcept
void setSnappointattribs(bool val)
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
bool opDeldegen(const SOP_NodeVerb::CookParms &cookparms) const
fpreal getCookTime() const
static void loadData(UT_IStream &is, UT_Vector4D &v)
void setGroup(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
UT_Vector3D opGridlines(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
const char * findChar(int c) const
int64 getSwitcher() const
static void saveData(std::ostream &os, UT_Vector4D v)
void setSnapswitcher(int64 val)
Snaptype opSnaptype(const SOP_NodeVerb::CookParms &cookparms) const
bool opKeepconsolidatedpoints(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opDist(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Matrix3D v)
constexpr SYS_FORCE_INLINE T & y() noexcept
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
constexpr SYS_FORCE_INLINE T & y() noexcept
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
SYS_FORCE_INLINE bool isstring() const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void setDeldegen(bool val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
OP_NodeParms & operator=(const OP_NodeParms &)=default
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
static void loadData(UT_IStream &is, UT_Matrix4D &v)
constexpr SYS_FORCE_INLINE T & x() noexcept
bool opKeepunusedpoints(const SOP_NodeVerb::CookParms &cookparms) const