23 namespace SOP_BoneDeformEnums
36 using namespace UT::Literal;
57 mySkeletonRootPath =
""_UTsh;
59 myDualQuaternionBlendAttrib =
""_UTsh;
60 myBoneTransformPath =
""_UTsh;
61 myBoneTransformTargetPath =
""_UTsh;
62 myBoneTransformRegionPath =
""_UTsh;
63 myOtherAttribs =
"*"_UTsh;
65 myDeleteCaptureAttrib =
true;
66 myDeletePointColors =
false;
80 if (myGroup != src.myGroup)
return false;
81 if (mySkeletonRootPath != src.mySkeletonRootPath)
return false;
82 if (myMethod != src.myMethod)
return false;
83 if (myDualQuaternionBlendAttrib != src.myDualQuaternionBlendAttrib)
return false;
84 if (myBoneTransformPath != src.myBoneTransformPath)
return false;
85 if (myBoneTransformTargetPath != src.myBoneTransformTargetPath)
return false;
86 if (myBoneTransformRegionPath != src.myBoneTransformRegionPath)
return false;
87 if (myOtherAttribs != src.myOtherAttribs)
return false;
88 if (myDoNormals != src.myDoNormals)
return false;
89 if (myDeleteCaptureAttrib != src.myDeleteCaptureAttrib)
return false;
90 if (myDeletePointColors != src.myDeletePointColors)
return false;
91 if (myUseOpenCL != src.myUseOpenCL)
return false;
110 graph->
evalOpParm(myGroup, nodeidx,
"group", time, graph->
isDirect()?
nullptr:depnode);
111 mySkeletonRootPath =
""_UTsh;
113 graph->
evalOpParm(mySkeletonRootPath, nodeidx,
"skelrootpath", time, graph->
isDirect()?
nullptr:depnode);
116 graph->
evalOpParm(myMethod, nodeidx,
"method", time, graph->
isDirect()?
nullptr:depnode);
117 myDualQuaternionBlendAttrib =
""_UTsh;
118 if (
true && ( (
true&&!(((
int64(getMethod())!=2)))) ) )
119 graph->
evalOpParm(myDualQuaternionBlendAttrib, nodeidx,
"dqblendattrib", time, graph->
isDirect()?
nullptr:depnode);
120 myBoneTransformPath =
""_UTsh;
122 graph->
evalOpParm(myBoneTransformPath, nodeidx,
"bonetransformpath", time, graph->
isDirect()?
nullptr:depnode);
123 myBoneTransformTargetPath =
""_UTsh;
124 if (
true && ( (
true&&!(((getBoneTransformPath()==
"")))) ) )
125 graph->
evalOpParm(myBoneTransformTargetPath, nodeidx,
"bonetransformtargetpath", time, graph->
isDirect()?
nullptr:depnode);
126 myBoneTransformRegionPath =
""_UTsh;
127 if (
true && ( (
true&&!(((getBoneTransformPath()==
"")))) ) )
128 graph->
evalOpParm(myBoneTransformRegionPath, nodeidx,
"bonetransformregionpath", time, graph->
isDirect()?
nullptr:depnode);
129 myOtherAttribs =
"*"_UTsh;
131 graph->
evalOpParm(myOtherAttribs, nodeidx,
"otherattribs", time, graph->
isDirect()?
nullptr:depnode);
134 graph->
evalOpParm(myDoNormals, nodeidx,
"donormal", time, graph->
isDirect()?
nullptr:depnode);
135 myDeleteCaptureAttrib =
true;
137 graph->
evalOpParm(myDeleteCaptureAttrib, nodeidx,
"deletecaptureattrib", time, graph->
isDirect()?
nullptr:depnode);
138 myDeletePointColors =
false;
140 graph->
evalOpParm(myDeletePointColors, nodeidx,
"deletepointtcolors", time, graph->
isDirect()?
nullptr:depnode);
143 graph->
evalOpParm(myUseOpenCL, nodeidx,
"useopencl", time, graph->
isDirect()?
nullptr:depnode);
159 template <
typename T>
166 if (idx.
size() != instance.
size()+1)
171 coerceValue(value, myGroup);
174 coerceValue(value, mySkeletonRootPath);
177 coerceValue(value, myMethod);
180 coerceValue(value, myDualQuaternionBlendAttrib);
183 coerceValue(value, myBoneTransformPath);
186 coerceValue(value, myBoneTransformTargetPath);
189 coerceValue(value, myBoneTransformRegionPath);
192 coerceValue(value, myOtherAttribs);
195 coerceValue(value, myDoNormals);
198 coerceValue(value, myDeleteCaptureAttrib);
201 coerceValue(value, myDeletePointColors);
204 coerceValue(value, myUseOpenCL);
220 { doGetParmValue(idx, instance, value); }
222 { doGetParmValue(idx, instance, value); }
224 { doGetParmValue(idx, instance, value); }
226 { doGetParmValue(idx, instance, value); }
228 { doGetParmValue(idx, instance, value); }
230 { doGetParmValue(idx, instance, value); }
232 { doGetParmValue(idx, instance, value); }
234 { doGetParmValue(idx, instance, value); }
236 { doGetParmValue(idx, instance, value); }
238 { doGetParmValue(idx, instance, value); }
240 { doGetParmValue(idx, instance, value); }
242 template <
typename T>
249 if (idx.
size() != instance.
size()+1)
254 coerceValue(myGroup, ( ( value ) ));
257 coerceValue(mySkeletonRootPath, ( ( value ) ));
260 coerceValue(myMethod, clampMinValue(0, clampMaxValue(3, value ) ));
263 coerceValue(myDualQuaternionBlendAttrib, ( ( value ) ));
266 coerceValue(myBoneTransformPath, ( ( value ) ));
269 coerceValue(myBoneTransformTargetPath, ( ( value ) ));
272 coerceValue(myBoneTransformRegionPath, ( ( value ) ));
275 coerceValue(myOtherAttribs, ( ( value ) ));
278 coerceValue(myDoNormals, ( ( value ) ));
281 coerceValue(myDeleteCaptureAttrib, ( ( value ) ));
284 coerceValue(myDeletePointColors, ( ( value ) ));
287 coerceValue(myUseOpenCL, ( ( value ) ));
294 { doSetParmValue(idx, instance, value); }
296 { doSetParmValue(idx, instance, value); }
298 { doSetParmValue(idx, instance, value); }
300 { doSetParmValue(idx, instance, value); }
302 { doSetParmValue(idx, instance, value); }
304 { doSetParmValue(idx, instance, value); }
306 { doSetParmValue(idx, instance, value); }
308 { doSetParmValue(idx, instance, value); }
310 { doSetParmValue(idx, instance, value); }
312 { doSetParmValue(idx, instance, value); }
314 { doSetParmValue(idx, instance, value); }
330 if (fieldnum.
size() < 1)
337 return "skelrootpath";
341 return "dqblendattrib";
343 return "bonetransformpath";
345 return "bonetransformtargetpath";
347 return "bonetransformregionpath";
349 return "otherattribs";
353 return "deletecaptureattrib";
355 return "deletepointtcolors";
365 if (fieldnum.
size() < 1)
366 return PARM_UNSUPPORTED;
395 return PARM_UNSUPPORTED;
431 loadData(is, rampdata);
449 int typelen = colon - data.
buffer();
463 {
int64 iv =
v; UTwrite(os, &iv); }
465 { UTwrite<fpreal64>(os, &
v); }
467 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
469 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
470 UTwrite<fpreal64>(os, &v.
z()); }
472 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
473 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
485 if (s) s->save(ostr);
487 saveData(os, result);
494 ostr << s->getDataTypeToken();
499 saveData(os, result);
503 void save(std::ostream &os)
const
507 saveData(os, myGroup);
508 saveData(os, mySkeletonRootPath);
509 saveData(os, myMethod);
510 saveData(os, myDualQuaternionBlendAttrib);
511 saveData(os, myBoneTransformPath);
512 saveData(os, myBoneTransformTargetPath);
513 saveData(os, myBoneTransformRegionPath);
514 saveData(os, myOtherAttribs);
515 saveData(os, myDoNormals);
516 saveData(os, myDeleteCaptureAttrib);
517 saveData(os, myDeletePointColors);
518 saveData(os, myUseOpenCL);
531 loadData(is, myGroup);
532 loadData(is, mySkeletonRootPath);
533 loadData(is, myMethod);
534 loadData(is, myDualQuaternionBlendAttrib);
535 loadData(is, myBoneTransformPath);
536 loadData(is, myBoneTransformTargetPath);
537 loadData(is, myBoneTransformRegionPath);
538 loadData(is, myOtherAttribs);
539 loadData(is, myDoNormals);
540 loadData(is, myDeleteCaptureAttrib);
541 loadData(is, myDeletePointColors);
542 loadData(is, myUseOpenCL);
552 if (!thissop)
return getGroup();
554 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
562 if (!thissop)
return getSkeletonRootPath();
564 OP_Utils::evalOpParm(result, thissop,
"skelrootpath", cookparms.
getCookTime(), 0);
572 if (!thissop)
return getMethod();
574 OP_Utils::evalOpParm(result, thissop,
"method", cookparms.
getCookTime(), 0);
582 if (!thissop)
return getDualQuaternionBlendAttrib();
584 OP_Utils::evalOpParm(result, thissop,
"dqblendattrib", cookparms.
getCookTime(), 0);
592 if (!thissop)
return getBoneTransformPath();
594 OP_Utils::evalOpParm(result, thissop,
"bonetransformpath", cookparms.
getCookTime(), 0);
602 if (!thissop)
return getBoneTransformTargetPath();
604 OP_Utils::evalOpParm(result, thissop,
"bonetransformtargetpath", cookparms.
getCookTime(), 0);
612 if (!thissop)
return getBoneTransformRegionPath();
614 OP_Utils::evalOpParm(result, thissop,
"bonetransformregionpath", cookparms.
getCookTime(), 0);
622 if (!thissop)
return getOtherAttribs();
624 OP_Utils::evalOpParm(result, thissop,
"otherattribs", cookparms.
getCookTime(), 0);
632 if (!thissop)
return getDoNormals();
634 OP_Utils::evalOpParm(result, thissop,
"donormal", cookparms.
getCookTime(), 0);
642 if (!thissop)
return getDeleteCaptureAttrib();
644 OP_Utils::evalOpParm(result, thissop,
"deletecaptureattrib", cookparms.
getCookTime(), 0);
652 if (!thissop)
return getDeletePointColors();
654 OP_Utils::evalOpParm(result, thissop,
"deletepointtcolors", cookparms.
getCookTime(), 0);
662 if (!thissop)
return getUseOpenCL();
664 OP_Utils::evalOpParm(result, thissop,
"useopencl", cookparms.
getCookTime(), 0);
678 bool myDeleteCaptureAttrib;
679 bool myDeletePointColors;
SOP_Node * getNode() const
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
GLsizei const GLfloat * value
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
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
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
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
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
DEP_MicroNode * depnode() const
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
constexpr SYS_FORCE_INLINE T & w() noexcept
virtual UT_StringHolder baseGetSignature() const
fpreal getCookTime() const
const char * findChar(int c) const
constexpr SYS_FORCE_INLINE T & y() noexcept
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
constexpr SYS_FORCE_INLINE T & y() noexcept
SYS_FORCE_INLINE bool isstring() const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
constexpr SYS_FORCE_INLINE T & x() noexcept