23 namespace SOP_TransformEnums
102 myAttribs =
"*"_UTsh;
103 myUpdatenmls =
false;
104 myUpdateaffectednmls =
true;
106 myInvertxform =
false;
108 myOutputattrib =
"xform"_UTsh;
122 if (myGroup != src.myGroup)
return false;
123 if (myGrouptype != src.myGrouptype)
return false;
124 if (myXord != src.myXord)
return false;
125 if (myRord != src.myRord)
return false;
126 if (myT != src.myT)
return false;
127 if (myR != src.myR)
return false;
128 if (myS != src.myS)
return false;
129 if (myShear != src.myShear)
return false;
130 if (myScale != src.myScale)
return false;
131 if (myP != src.myP)
return false;
132 if (myPr != src.myPr)
return false;
133 if (myPrexform_xord != src.myPrexform_xord)
return false;
134 if (myPrexform_rord != src.myPrexform_rord)
return false;
135 if (myPrexform_t != src.myPrexform_t)
return false;
136 if (myPrexform_r != src.myPrexform_r)
return false;
137 if (myPrexform_s != src.myPrexform_s)
return false;
138 if (myPrexform_shear != src.myPrexform_shear)
return false;
139 if (myAttribs != src.myAttribs)
return false;
140 if (myUpdatenmls != src.myUpdatenmls)
return false;
141 if (myUpdateaffectednmls != src.myUpdateaffectednmls)
return false;
142 if (myVlength != src.myVlength)
return false;
143 if (myInvertxform != src.myInvertxform)
return false;
144 if (myAddattrib != src.myAddattrib)
return false;
145 if (myOutputattrib != src.myOutputattrib)
return false;
146 if (myOutputmerge != src.myOutputmerge)
return false;
167 graph->
evalOpParm(myGroup, nodeidx,
"group", time, 0);
170 graph->
evalOpParm(myGrouptype, nodeidx,
"grouptype", time, 0);
173 graph->
evalOpParm(myXord, nodeidx,
"xOrd", time, 0);
176 graph->
evalOpParm(myRord, nodeidx,
"rOrd", time, 0);
179 graph->
evalOpParm(myT, nodeidx,
"t", time, 0);
182 graph->
evalOpParm(myR, nodeidx,
"r", time, 0);
185 graph->
evalOpParm(myS, nodeidx,
"s", time, 0);
188 graph->
evalOpParm(myShear, nodeidx,
"shear", time, 0);
191 graph->
evalOpParm(myScale, nodeidx,
"scale", time, 0);
194 graph->
evalOpParm(myP, nodeidx,
"p", time, 0);
197 graph->
evalOpParm(myPr, nodeidx,
"pr", time, 0);
200 graph->
evalOpParm(myPrexform_xord, nodeidx,
"prexform_xOrd", time, 0);
203 graph->
evalOpParm(myPrexform_rord, nodeidx,
"prexform_rOrd", time, 0);
206 graph->
evalOpParm(myPrexform_t, nodeidx,
"prexform_t", time, 0);
209 graph->
evalOpParm(myPrexform_r, nodeidx,
"prexform_r", time, 0);
212 graph->
evalOpParm(myPrexform_s, nodeidx,
"prexform_s", time, 0);
215 graph->
evalOpParm(myPrexform_shear, nodeidx,
"prexform_shear", time, 0);
216 myAttribs =
"*"_UTsh;
218 graph->
evalOpParm(myAttribs, nodeidx,
"attribs", time, 0);
219 myUpdatenmls =
false;
221 graph->
evalOpParm(myUpdatenmls, nodeidx,
"updatenmls", time, 0);
222 myUpdateaffectednmls =
true;
223 if (
true && ( (
true&&!(((getUpdatenmls()==1)))) ) )
224 graph->
evalOpParm(myUpdateaffectednmls, nodeidx,
"updateaffectednmls", time, 0);
226 if (
true && ( (
true&&!(((getUpdatenmls()==1)))) ) )
227 graph->
evalOpParm(myVlength, nodeidx,
"vlength", time, 0);
228 myInvertxform =
false;
230 graph->
evalOpParm(myInvertxform, nodeidx,
"invertxform", time, 0);
233 graph->
evalOpParm(myAddattrib, nodeidx,
"addattrib", time, 0);
234 myOutputattrib =
"xform"_UTsh;
235 if (
true && ( (
true&&!(((getAddattrib()==0)))) ) )
236 graph->
evalOpParm(myOutputattrib, nodeidx,
"outputattrib", time, 0);
238 if (
true && ( (
true&&!(((getAddattrib()==0)))) ) )
239 graph->
evalOpParm(myOutputmerge, nodeidx,
"outputmerge", time, 0);
255 template <
typename T>
262 if (idx.
size() != instance.
size()+1)
355 { doGetParmValue(idx, instance, value); }
357 { doGetParmValue(idx, instance, value); }
359 { doGetParmValue(idx, instance, value); }
361 { doGetParmValue(idx, instance, value); }
363 { doGetParmValue(idx, instance, value); }
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 template <
typename T>
384 if (idx.
size() != instance.
size()+1)
468 { doSetParmValue(idx, instance, value); }
470 { doSetParmValue(idx, instance, value); }
472 { doSetParmValue(idx, instance, value); }
474 { doSetParmValue(idx, instance, value); }
476 { doSetParmValue(idx, instance, value); }
478 { doSetParmValue(idx, instance, value); }
480 { doSetParmValue(idx, instance, value); }
482 { doSetParmValue(idx, instance, value); }
484 { doSetParmValue(idx, instance, value); }
486 { doSetParmValue(idx, instance, value); }
488 { doSetParmValue(idx, instance, value); }
504 if (fieldnum.
size() < 1)
531 return "prexform_xOrd";
533 return "prexform_rOrd";
541 return "prexform_shear";
547 return "updateaffectednmls";
551 return "invertxform";
555 return "outputattrib";
557 return "outputmerge";
565 if (fieldnum.
size() < 1)
566 return PARM_UNSUPPORTED;
640 {
for (
int r = 0;
r < 2;
r++)
for (
int c = 0; c < 2; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
642 {
for (
int r = 0;
r < 3;
r++)
for (
int c = 0; c < 3; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
644 {
for (
int r = 0;
r < 4;
r++)
for (
int c = 0; c < 4; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
657 loadData(is, rampdata);
675 int typelen = colon - data.
buffer();
689 {
int64 iv =
v; UTwrite(os, &iv); }
691 { UTwrite<fpreal64>(os, &
v); }
693 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
695 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
696 UTwrite<fpreal64>(os, &v.
z()); }
698 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
699 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
711 if (s) s->save(ostr);
713 saveData(os, result);
720 ostr << s->getDataTypeToken();
725 saveData(os, result);
729 void save(std::ostream &os)
const
733 saveData(os, myGroup);
734 saveData(os, myGrouptype);
735 saveData(os, myXord);
736 saveData(os, myRord);
740 saveData(os, myShear);
741 saveData(os, myScale);
744 saveData(os, myPrexform_xord);
745 saveData(os, myPrexform_rord);
746 saveData(os, myPrexform_t);
747 saveData(os, myPrexform_r);
748 saveData(os, myPrexform_s);
749 saveData(os, myPrexform_shear);
750 saveData(os, myAttribs);
751 saveData(os, myUpdatenmls);
752 saveData(os, myUpdateaffectednmls);
753 saveData(os, myVlength);
754 saveData(os, myInvertxform);
755 saveData(os, myAddattrib);
756 saveData(os, myOutputattrib);
757 saveData(os, myOutputmerge);
770 loadData(is, myGroup);
771 loadData(is, myGrouptype);
772 loadData(is, myXord);
773 loadData(is, myRord);
777 loadData(is, myShear);
778 loadData(is, myScale);
781 loadData(is, myPrexform_xord);
782 loadData(is, myPrexform_rord);
783 loadData(is, myPrexform_t);
784 loadData(is, myPrexform_r);
785 loadData(is, myPrexform_s);
786 loadData(is, myPrexform_shear);
787 loadData(is, myAttribs);
788 loadData(is, myUpdatenmls);
789 loadData(is, myUpdateaffectednmls);
790 loadData(is, myVlength);
791 loadData(is, myInvertxform);
792 loadData(is, myAddattrib);
793 loadData(is, myOutputattrib);
794 loadData(is, myOutputmerge);
804 if (!thissop)
return getGroup();
806 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
814 if (!thissop)
return getGrouptype();
816 OP_Utils::evalOpParm(result, thissop,
"grouptype", cookparms.
getCookTime(), 0);
824 if (!thissop)
return getXord();
826 OP_Utils::evalOpParm(result, thissop,
"xOrd", cookparms.
getCookTime(), 0);
834 if (!thissop)
return getRord();
836 OP_Utils::evalOpParm(result, thissop,
"rOrd", cookparms.
getCookTime(), 0);
844 if (!thissop)
return getT();
846 OP_Utils::evalOpParm(result, thissop,
"t", cookparms.
getCookTime(), 0);
854 if (!thissop)
return getR();
856 OP_Utils::evalOpParm(result, thissop,
"r", cookparms.
getCookTime(), 0);
864 if (!thissop)
return getS();
866 OP_Utils::evalOpParm(result, thissop,
"s", cookparms.
getCookTime(), 0);
874 if (!thissop)
return getShear();
876 OP_Utils::evalOpParm(result, thissop,
"shear", cookparms.
getCookTime(), 0);
886 OP_Utils::evalOpParm(result, thissop,
"scale", cookparms.
getCookTime(), 0);
894 if (!thissop)
return getP();
896 OP_Utils::evalOpParm(result, thissop,
"p", cookparms.
getCookTime(), 0);
904 if (!thissop)
return getPr();
906 OP_Utils::evalOpParm(result, thissop,
"pr", cookparms.
getCookTime(), 0);
914 if (!thissop)
return getPrexform_xord();
916 OP_Utils::evalOpParm(result, thissop,
"prexform_xOrd", cookparms.
getCookTime(), 0);
924 if (!thissop)
return getPrexform_rord();
926 OP_Utils::evalOpParm(result, thissop,
"prexform_rOrd", cookparms.
getCookTime(), 0);
934 if (!thissop)
return getPrexform_t();
936 OP_Utils::evalOpParm(result, thissop,
"prexform_t", cookparms.
getCookTime(), 0);
944 if (!thissop)
return getPrexform_r();
946 OP_Utils::evalOpParm(result, thissop,
"prexform_r", cookparms.
getCookTime(), 0);
954 if (!thissop)
return getPrexform_s();
956 OP_Utils::evalOpParm(result, thissop,
"prexform_s", cookparms.
getCookTime(), 0);
964 if (!thissop)
return getPrexform_shear();
966 OP_Utils::evalOpParm(result, thissop,
"prexform_shear", cookparms.
getCookTime(), 0);
974 if (!thissop)
return getAttribs();
976 OP_Utils::evalOpParm(result, thissop,
"attribs", cookparms.
getCookTime(), 0);
984 if (!thissop)
return getUpdatenmls();
986 OP_Utils::evalOpParm(result, thissop,
"updatenmls", cookparms.
getCookTime(), 0);
994 if (!thissop)
return getUpdateaffectednmls();
996 OP_Utils::evalOpParm(result, thissop,
"updateaffectednmls", cookparms.
getCookTime(), 0);
1004 if (!thissop)
return getVlength();
1006 OP_Utils::evalOpParm(result, thissop,
"vlength", cookparms.
getCookTime(), 0);
1014 if (!thissop)
return getInvertxform();
1016 OP_Utils::evalOpParm(result, thissop,
"invertxform", cookparms.
getCookTime(), 0);
1024 if (!thissop)
return getAddattrib();
1026 OP_Utils::evalOpParm(result, thissop,
"addattrib", cookparms.
getCookTime(), 0);
1034 if (!thissop)
return getOutputattrib();
1036 OP_Utils::evalOpParm(result, thissop,
"outputattrib", cookparms.
getCookTime(), 0);
1044 if (!thissop)
return getOutputmerge();
1046 OP_Utils::evalOpParm(result, thissop,
"outputmerge", cookparms.
getCookTime(), 0);
1062 int64 myPrexform_xord;
1063 int64 myPrexform_rord;
1070 bool myUpdateaffectednmls;
1075 int64 myOutputmerge;
SOP_Node * getNode() const
T clampMaxValue(fpreal maxvalue, const T &src) const
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
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.
**But if you need a result
T clampMinValue(fpreal minvalue, const T &src) 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.
constexpr SYS_FORCE_INLINE T & x() noexcept
constexpr SYS_FORCE_INLINE T & x() noexcept
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
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
const OP_GraphProxy * graph() const
UT_Vector3T< fpreal64 > UT_Vector3D
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void saveBinary(std::ostream &os) const
Save string to binary stream.
GT_API const UT_StringHolder version
void coerceValue(T &result, const S &src) const
DEP_MicroNode * depnode() const
Utility class for containing a color ramp.
constexpr SYS_FORCE_INLINE T & w() noexcept
Vec3< typename MatType::value_type > getScale(const MatType &mat)
Return a Vec3 representing the lengths of the passed matrix's upper 3×3's rows.
fpreal getCookTime() const
const char * findChar(int c) const
constexpr SYS_FORCE_INLINE T & y() noexcept
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
constexpr SYS_FORCE_INLINE T & y() noexcept
SYS_FORCE_INLINE bool isstring() const
OP_NodeParms & operator=(const OP_NodeParms &)=default
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
constexpr SYS_FORCE_INLINE T & x() noexcept