23 namespace SOP_AgentUnpackEnums
35 using namespace UT::Literal;
56 using namespace UT::Literal;
78 using namespace UT::Literal;
104 jointnames =
""_UTsh;
112 if (jointnames != src.
jointnames)
return false;
113 if (percentage != src.
percentage)
return false;
114 if (seed != src.
seed)
return false;
130 for (
int i = 0; i < list.
entries(); i++)
155 myUniqueAgentDefinitions =
false;
156 myApplyAgentXform =
true;
157 myRestShapesMode = 0;
158 myLayerFilter =
"*"_UTsh;
159 myShapeFilter =
"*"_UTsh;
160 myLimitIterations =
true;
162 myAddShapeDeformerAttrib =
false;
163 myShapeDeformerAttrib =
"agentshapedeformer"_UTsh;
164 myAddXformNameAttrib =
false;
165 myXformNameAttrib =
"agenttransformname"_UTsh;
166 myAddLayerNameAttrib =
false;
167 myLayerNameAttrib =
"agentlayername"_UTsh;
168 myClipNames =
""_UTsh;
169 myTransferAttributes =
""_UTsh;
170 myTransferGroups =
""_UTsh;
171 myFilters.setSize(0);
173 myApplyJointXforms =
true;
186 if (myGroup != src.myGroup)
return false;
187 if (myGroupType != src.myGroupType)
return false;
188 if (myOutput != src.myOutput)
return false;
189 if (myUniqueAgentDefinitions != src.myUniqueAgentDefinitions)
return false;
190 if (myApplyAgentXform != src.myApplyAgentXform)
return false;
191 if (myRestShapesMode != src.myRestShapesMode)
return false;
192 if (myLayerFilter != src.myLayerFilter)
return false;
193 if (myShapeFilter != src.myShapeFilter)
return false;
194 if (myLimitIterations != src.myLimitIterations)
return false;
195 if (myIterations != src.myIterations)
return false;
196 if (myAddShapeDeformerAttrib != src.myAddShapeDeformerAttrib)
return false;
197 if (myShapeDeformerAttrib != src.myShapeDeformerAttrib)
return false;
198 if (myAddXformNameAttrib != src.myAddXformNameAttrib)
return false;
199 if (myXformNameAttrib != src.myXformNameAttrib)
return false;
200 if (myAddLayerNameAttrib != src.myAddLayerNameAttrib)
return false;
201 if (myLayerNameAttrib != src.myLayerNameAttrib)
return false;
202 if (myClipNames != src.myClipNames)
return false;
203 if (myTransferAttributes != src.myTransferAttributes)
return false;
204 if (myTransferGroups != src.myTransferGroups)
return false;
205 if (myFilters != src.myFilters)
return false;
206 if (mySkeletonColor != src.mySkeletonColor)
return false;
207 if (myApplyJointXforms != src.myApplyJointXforms)
return false;
228 graph->
evalOpParm(myGroup, nodeidx,
"group", time, graph->
isDirect()?
nullptr:depnode);
231 graph->
evalOpParm(myGroupType, nodeidx,
"grouptype", time, graph->
isDirect()?
nullptr:depnode);
234 graph->
evalOpParm(myOutput, nodeidx,
"output", time, graph->
isDirect()?
nullptr:depnode);
235 myUniqueAgentDefinitions =
false;
236 if (
true && ( (
true&&!(((
int64(getOutput())!=1))||((
int64(getOutput())!=1)))) ) )
237 graph->
evalOpParm(myUniqueAgentDefinitions, nodeidx,
"uniqueagentdefinitions", time, graph->
isDirect()?
nullptr:depnode);
238 myApplyAgentXform =
true;
239 if (
true && ( (
true&&!(((
int64(getOutput())==4))||((
int64(getOutput())==4)))) ) )
240 graph->
evalOpParm(myApplyAgentXform, nodeidx,
"applyagentxform", time, graph->
isDirect()?
nullptr:depnode);
241 myRestShapesMode = 0;
242 if (
true && ( (
true&&!(((
int64(getOutput())!=1))||((
int64(getOutput())!=1)))) ) )
243 graph->
evalOpParm(myRestShapesMode, nodeidx,
"unpackrestshapesfrom", time, graph->
isDirect()?
nullptr:depnode);
244 myLayerFilter =
"*"_UTsh;
245 if (
true && ( (
true&&!(((
int64(getOutput())!=0)&&(
int64(getOutput())!=1))||((
int64(getOutput())==1)&&(
int64(getRestShapesMode())==3))||((
int64(getOutput())!=0)&&(
int64(getOutput())!=1)))) ) )
246 graph->
evalOpParm(myLayerFilter, nodeidx,
"layerfilter", time, graph->
isDirect()?
nullptr:depnode);
247 myShapeFilter =
"*"_UTsh;
248 if (
true && ( (
true&&!(((
int64(getOutput())!=0)&&(
int64(getOutput())!=1))||((
int64(getOutput())!=0)&&(
int64(getOutput())!=1)))) ) )
249 graph->
evalOpParm(myShapeFilter, nodeidx,
"shapefilter", time, graph->
isDirect()?
nullptr:depnode);
250 myLimitIterations =
true;
251 if (
true && ( (
true&&!(((
int64(getOutput())!=0)&&(
int64(getOutput())!=1))||((
int64(getOutput())!=0)&&(
int64(getOutput())!=1)))) ) )
252 graph->
evalOpParm(myLimitIterations, nodeidx,
"limititerations", time, graph->
isDirect()?
nullptr:depnode);
254 if (
true && ( (
true&&!(((
int64(getOutput())!=0)&&(
int64(getOutput())!=1))||((getLimitIterations()==0))||((
int64(getOutput())!=0)&&(
int64(getOutput())!=1)))) ) )
255 graph->
evalOpParm(myIterations, nodeidx,
"iterations", time, graph->
isDirect()?
nullptr:depnode);
256 myAddShapeDeformerAttrib =
false;
257 if (
true && ( (
true&&!(((
int64(getOutput())!=0)&&(
int64(getOutput())!=1))||((
int64(getOutput())==1)&&(
int64(getRestShapesMode())==3))||((
int64(getOutput())!=0)&&(
int64(getOutput())!=1)))) ) )
258 graph->
evalOpParm(myAddShapeDeformerAttrib, nodeidx,
"addshapedeformerattrib", time, graph->
isDirect()?
nullptr:depnode);
259 myShapeDeformerAttrib =
"agentshapedeformer"_UTsh;
260 if (
true && ( (
true&&!(((
int64(getOutput())!=0)&&(
int64(getOutput())!=1))||((
int64(getOutput())==1)&&(
int64(getRestShapesMode())==3))||((getAddShapeDeformerAttrib()==0))||((
int64(getOutput())!=0)&&(
int64(getOutput())!=1)))) ) )
261 graph->
evalOpParm(myShapeDeformerAttrib, nodeidx,
"shapedeformerattrib", time, graph->
isDirect()?
nullptr:depnode);
262 myAddXformNameAttrib =
false;
263 if (
true && ( (
true&&!(((
int64(getOutput())!=0)&&(
int64(getOutput())!=1))||((
int64(getOutput())==1)&&(
int64(getRestShapesMode())==3))||((
int64(getOutput())!=0)&&(
int64(getOutput())!=1)))) ) )
264 graph->
evalOpParm(myAddXformNameAttrib, nodeidx,
"addxformnameattrib", time, graph->
isDirect()?
nullptr:depnode);
265 myXformNameAttrib =
"agenttransformname"_UTsh;
266 if (
true && ( (
true&&!(((
int64(getOutput())!=0)&&(
int64(getOutput())!=1))||((
int64(getOutput())==1)&&(
int64(getRestShapesMode())==3))||((getAddXformNameAttrib()==0))||((
int64(getOutput())!=0)&&(
int64(getOutput())!=1)))) ) )
267 graph->
evalOpParm(myXformNameAttrib, nodeidx,
"xformnameattrib", time, graph->
isDirect()?
nullptr:depnode);
268 myAddLayerNameAttrib =
false;
269 if (
true && ( (
true&&!(((
int64(getOutput())!=0)&&(
int64(getOutput())!=1))||((
int64(getOutput())==1)&&(
int64(getRestShapesMode())==3))||((
int64(getOutput())!=0)&&(
int64(getOutput())!=1)))) ) )
270 graph->
evalOpParm(myAddLayerNameAttrib, nodeidx,
"addlayernameattrib", time, graph->
isDirect()?
nullptr:depnode);
271 myLayerNameAttrib =
"agentlayername"_UTsh;
272 if (
true && ( (
true&&!(((
int64(getOutput())!=0)&&(
int64(getOutput())!=1))||((
int64(getOutput())==1)&&(
int64(getRestShapesMode())==3))||((getAddLayerNameAttrib()==0))||((
int64(getOutput())!=0)&&(
int64(getOutput())!=1)))) ) )
273 graph->
evalOpParm(myLayerNameAttrib, nodeidx,
"layernameattrib", time, graph->
isDirect()?
nullptr:depnode);
274 myClipNames =
""_UTsh;
275 if (
true && ( (
true&&!(((
int64(getOutput())!=4))||((
int64(getOutput())!=4)))) ) )
276 graph->
evalOpParm(myClipNames, nodeidx,
"clipnames", time, graph->
isDirect()?
nullptr:depnode);
277 myTransferAttributes =
""_UTsh;
279 graph->
evalOpParm(myTransferAttributes, nodeidx,
"transferattributes", time, graph->
isDirect()?
nullptr:depnode);
280 myTransferGroups =
""_UTsh;
282 graph->
evalOpParm(myTransferGroups, nodeidx,
"transfergroups", time, graph->
isDirect()?
nullptr:depnode);
283 if (
true && ( (!(((
int64(getOutput())!=2))||((
int64(getOutput())!=2)))) ) )
286 graph->
evalOpParm(length, nodeidx,
"numjointfilters", time, graph->
isDirect()?
nullptr:depnode);
287 if (length < 0) length = 0;
288 myFilters.setSize(length);
295 auto && _curentry = myFilters(i);
297 _curentry.jointnames =
""_UTsh;
298 if (
true && ( (!(((
int64(getOutput())!=2))||((
int64(getOutput())!=2)))) ) && ( (
true&&!(((
int64(getOutput())!=2))||((
int64(getOutput())!=2)))) ) )
299 graph->
evalOpParmInst(_curentry.jointnames, nodeidx,
"jointnames#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
300 _curentry.percentage = 100;
301 if (
true && ( (!(((
int64(getOutput())!=2))||((
int64(getOutput())!=2)))) ) && ( (
true&&!(((
int64(getOutput())!=2))||((
int64(getOutput())!=2)))) ) )
302 graph->
evalOpParmInst(_curentry.percentage, nodeidx,
"percentage#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
304 if (
true && ( (!(((
int64(getOutput())!=2))||((
int64(getOutput())!=2)))) ) && ( (
true&&!(((
int64(getOutput())!=2))||((
int64(getOutput())!=2)))) ) )
305 graph->
evalOpParmInst(_curentry.seed, nodeidx,
"seed#", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
312 if (
true && ( (
true&&!(((
int64(getOutput())!=3)&&(
int64(getOutput())!=4))||((
int64(getOutput())!=3)&&(
int64(getOutput())!=4)))) ) )
313 graph->
evalOpParm(mySkeletonColor, nodeidx,
"skeletoncolor", time, graph->
isDirect()?
nullptr:depnode);
314 myApplyJointXforms =
true;
315 if (
true && ( (
true&&!(((
int64(getOutput())==0))||((
int64(getOutput())==4))||((
int64(getOutput())==1)&&(
int64(getRestShapesMode())==3))||((
int64(getOutput())==0))||((
int64(getOutput())==4)))) ) )
316 graph->
evalOpParm(myApplyJointXforms, nodeidx,
"applyjointxforms", time, graph->
isDirect()?
nullptr:depnode);
332 template <
typename T>
339 if (idx.
size() != instance.
size()+1)
344 coerceValue(value, myGroup);
347 coerceValue(value, myGroupType);
350 coerceValue(value, myOutput);
353 coerceValue(value, myUniqueAgentDefinitions);
356 coerceValue(value, myApplyAgentXform);
359 coerceValue(value, myRestShapesMode);
362 coerceValue(value, myLayerFilter);
365 coerceValue(value, myShapeFilter);
368 coerceValue(value, myLimitIterations);
371 coerceValue(value, myIterations);
374 coerceValue(value, myAddShapeDeformerAttrib);
377 coerceValue(value, myShapeDeformerAttrib);
380 coerceValue(value, myAddXformNameAttrib);
383 coerceValue(value, myXformNameAttrib);
386 coerceValue(value, myAddLayerNameAttrib);
389 coerceValue(value, myLayerNameAttrib);
392 coerceValue(value, myClipNames);
395 coerceValue(value, myTransferAttributes);
398 coerceValue(value, myTransferGroups);
402 coerceValue(value, myFilters.entries());
403 else if (instance[0] < myFilters.entries())
405 auto && _data = myFilters(instance[0]);
409 coerceValue(value, _data.jointnames);
412 coerceValue(value, _data.percentage);
415 coerceValue(value, _data.seed);
422 coerceValue(value, mySkeletonColor);
425 coerceValue(value, myApplyJointXforms);
441 { doGetParmValue(idx, instance, value); }
443 { doGetParmValue(idx, instance, value); }
445 { doGetParmValue(idx, instance, value); }
447 { doGetParmValue(idx, instance, value); }
449 { doGetParmValue(idx, instance, value); }
451 { doGetParmValue(idx, instance, value); }
453 { doGetParmValue(idx, instance, value); }
455 { doGetParmValue(idx, instance, value); }
457 { doGetParmValue(idx, instance, value); }
459 { doGetParmValue(idx, instance, value); }
461 { doGetParmValue(idx, instance, value); }
463 template <
typename T>
470 if (idx.
size() != instance.
size()+1)
475 coerceValue(myGroup, ( ( value ) ));
478 coerceValue(myGroupType, clampMinValue(0, clampMaxValue(2, value ) ));
481 coerceValue(myOutput, clampMinValue(0, clampMaxValue(4, value ) ));
484 coerceValue(myUniqueAgentDefinitions, ( ( value ) ));
487 coerceValue(myApplyAgentXform, ( ( value ) ));
490 coerceValue(myRestShapesMode, clampMinValue(0, clampMaxValue(3, value ) ));
493 coerceValue(myLayerFilter, ( ( value ) ));
496 coerceValue(myShapeFilter, ( ( value ) ));
499 coerceValue(myLimitIterations, ( ( value ) ));
502 coerceValue(myIterations, clampMinValue(1, ( value ) ));
505 coerceValue(myAddShapeDeformerAttrib, ( ( value ) ));
508 coerceValue(myShapeDeformerAttrib, ( ( value ) ));
511 coerceValue(myAddXformNameAttrib, ( ( value ) ));
514 coerceValue(myXformNameAttrib, ( ( value ) ));
517 coerceValue(myAddLayerNameAttrib, ( ( value ) ));
520 coerceValue(myLayerNameAttrib, ( ( value ) ));
523 coerceValue(myClipNames, ( ( value ) ));
526 coerceValue(myTransferAttributes, ( ( value ) ));
529 coerceValue(myTransferGroups, ( ( value ) ));
535 coerceValue(newsize, value);
536 if (newsize < 0) newsize = 0;
537 myFilters.setSize(newsize);
543 myFilters.setSizeIfNeeded(instance[0]+1);
544 auto && _data = myFilters(instance[0]);
548 coerceValue(_data.jointnames, value);
551 coerceValue(_data.percentage, value);
554 coerceValue(_data.seed, value);
561 coerceValue(mySkeletonColor, ( ( value ) ));
564 coerceValue(myApplyJointXforms, ( ( value ) ));
571 { doSetParmValue(idx, instance, value); }
573 { doSetParmValue(idx, instance, value); }
575 { doSetParmValue(idx, instance, value); }
577 { doSetParmValue(idx, instance, value); }
579 { doSetParmValue(idx, instance, value); }
581 { doSetParmValue(idx, instance, value); }
583 { doSetParmValue(idx, instance, value); }
585 { doSetParmValue(idx, instance, value); }
587 { doSetParmValue(idx, instance, value); }
589 { doSetParmValue(idx, instance, value); }
591 { doSetParmValue(idx, instance, value); }
609 if (fieldnum.
size() < 1)
620 return "uniqueagentdefinitions";
622 return "applyagentxform";
624 return "unpackrestshapesfrom";
626 return "layerfilter";
628 return "shapefilter";
630 return "limititerations";
634 return "addshapedeformerattrib";
636 return "shapedeformerattrib";
638 return "addxformnameattrib";
640 return "xformnameattrib";
642 return "addlayernameattrib";
644 return "layernameattrib";
648 return "transferattributes";
650 return "transfergroups";
652 if (fieldnum.
size() == 1)
653 return "numjointfilters";
657 return "jointnames#";
659 return "percentage#";
666 return "skeletoncolor";
668 return "applyjointxforms";
676 if (fieldnum.
size() < 1)
677 return PARM_UNSUPPORTED;
719 if (fieldnum.
size() == 1)
720 return PARM_MULTIPARM;
731 return PARM_UNSUPPORTED;
738 return PARM_UNSUPPORTED;
774 loadData(is, rampdata);
792 int typelen = colon - data.
buffer();
806 {
int64 iv =
v; UTwrite(os, &iv); }
808 { UTwrite<fpreal64>(os, &
v); }
810 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
812 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
813 UTwrite<fpreal64>(os, &v.
z()); }
815 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
816 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
828 if (s) s->save(ostr);
830 saveData(os, result);
837 ostr << s->getDataTypeToken();
842 saveData(os, result);
846 void save(std::ostream &os)
const
850 saveData(os, myGroup);
851 saveData(os, myGroupType);
852 saveData(os, myOutput);
853 saveData(os, myUniqueAgentDefinitions);
854 saveData(os, myApplyAgentXform);
855 saveData(os, myRestShapesMode);
856 saveData(os, myLayerFilter);
857 saveData(os, myShapeFilter);
858 saveData(os, myLimitIterations);
859 saveData(os, myIterations);
860 saveData(os, myAddShapeDeformerAttrib);
861 saveData(os, myShapeDeformerAttrib);
862 saveData(os, myAddXformNameAttrib);
863 saveData(os, myXformNameAttrib);
864 saveData(os, myAddLayerNameAttrib);
865 saveData(os, myLayerNameAttrib);
866 saveData(os, myClipNames);
867 saveData(os, myTransferAttributes);
868 saveData(os, myTransferGroups);
871 UTwrite(os, &length);
874 auto && _curentry = myFilters(i);
876 saveData(os, _curentry.jointnames);
877 saveData(os, _curentry.percentage);
878 saveData(os, _curentry.seed);
882 saveData(os, mySkeletonColor);
883 saveData(os, myApplyJointXforms);
896 loadData(is, myGroup);
897 loadData(is, myGroupType);
898 loadData(is, myOutput);
899 loadData(is, myUniqueAgentDefinitions);
900 loadData(is, myApplyAgentXform);
901 loadData(is, myRestShapesMode);
902 loadData(is, myLayerFilter);
903 loadData(is, myShapeFilter);
904 loadData(is, myLimitIterations);
905 loadData(is, myIterations);
906 loadData(is, myAddShapeDeformerAttrib);
907 loadData(is, myShapeDeformerAttrib);
908 loadData(is, myAddXformNameAttrib);
909 loadData(is, myXformNameAttrib);
910 loadData(is, myAddLayerNameAttrib);
911 loadData(is, myLayerNameAttrib);
912 loadData(is, myClipNames);
913 loadData(is, myTransferAttributes);
914 loadData(is, myTransferGroups);
918 myFilters.setSize(length);
921 auto && _curentry = myFilters(i);
923 loadData(is, _curentry.jointnames);
924 loadData(is, _curentry.percentage);
925 loadData(is, _curentry.seed);
929 loadData(is, mySkeletonColor);
930 loadData(is, myApplyJointXforms);
940 if (!thissop)
return getGroup();
942 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
950 if (!thissop)
return getGroupType();
952 OP_Utils::evalOpParm(result, thissop,
"grouptype", cookparms.
getCookTime(), 0);
960 if (!thissop)
return getOutput();
962 OP_Utils::evalOpParm(result, thissop,
"output", cookparms.
getCookTime(), 0);
970 if (!thissop)
return getUniqueAgentDefinitions();
972 OP_Utils::evalOpParm(result, thissop,
"uniqueagentdefinitions", cookparms.
getCookTime(), 0);
980 if (!thissop)
return getApplyAgentXform();
982 OP_Utils::evalOpParm(result, thissop,
"applyagentxform", cookparms.
getCookTime(), 0);
990 if (!thissop)
return getRestShapesMode();
992 OP_Utils::evalOpParm(result, thissop,
"unpackrestshapesfrom", cookparms.
getCookTime(), 0);
1000 if (!thissop)
return getLayerFilter();
1002 OP_Utils::evalOpParm(result, thissop,
"layerfilter", cookparms.
getCookTime(), 0);
1010 if (!thissop)
return getShapeFilter();
1012 OP_Utils::evalOpParm(result, thissop,
"shapefilter", cookparms.
getCookTime(), 0);
1020 if (!thissop)
return getLimitIterations();
1022 OP_Utils::evalOpParm(result, thissop,
"limititerations", cookparms.
getCookTime(), 0);
1030 if (!thissop)
return getIterations();
1032 OP_Utils::evalOpParm(result, thissop,
"iterations", cookparms.
getCookTime(), 0);
1040 if (!thissop)
return getAddShapeDeformerAttrib();
1042 OP_Utils::evalOpParm(result, thissop,
"addshapedeformerattrib", cookparms.
getCookTime(), 0);
1050 if (!thissop)
return getShapeDeformerAttrib();
1052 OP_Utils::evalOpParm(result, thissop,
"shapedeformerattrib", cookparms.
getCookTime(), 0);
1060 if (!thissop)
return getAddXformNameAttrib();
1062 OP_Utils::evalOpParm(result, thissop,
"addxformnameattrib", cookparms.
getCookTime(), 0);
1070 if (!thissop)
return getXformNameAttrib();
1072 OP_Utils::evalOpParm(result, thissop,
"xformnameattrib", cookparms.
getCookTime(), 0);
1080 if (!thissop)
return getAddLayerNameAttrib();
1082 OP_Utils::evalOpParm(result, thissop,
"addlayernameattrib", cookparms.
getCookTime(), 0);
1090 if (!thissop)
return getLayerNameAttrib();
1092 OP_Utils::evalOpParm(result, thissop,
"layernameattrib", cookparms.
getCookTime(), 0);
1100 if (!thissop)
return getClipNames();
1102 OP_Utils::evalOpParm(result, thissop,
"clipnames", cookparms.
getCookTime(), 0);
1110 if (!thissop)
return getTransferAttributes();
1112 OP_Utils::evalOpParm(result, thissop,
"transferattributes", cookparms.
getCookTime(), 0);
1120 if (!thissop)
return getTransferGroups();
1122 OP_Utils::evalOpParm(result, thissop,
"transfergroups", cookparms.
getCookTime(), 0);
1130 if (!thissop)
return getFilters().entries();
1132 OP_Utils::evalOpParm(result, thissop,
"numjointfilters", cookparms.
getCookTime(), 0);
1136 {
return opinstFilters_jointnames(cookparms, &_idx); }
1140 if (!thissop)
return (myFilters(_idx[0]).jointnames);
1142 _parmidx[1-1] = _idx[1-1] + 1;
1145 OP_Utils::evalOpParmInst(result, thissop,
"jointnames#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1149 {
return opinstFilters_percentage(cookparms, &_idx); }
1153 if (!thissop)
return (myFilters(_idx[0]).percentage);
1155 _parmidx[1-1] = _idx[1-1] + 1;
1158 OP_Utils::evalOpParmInst(result, thissop,
"percentage#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1162 {
return opinstFilters_seed(cookparms, &_idx); }
1166 if (!thissop)
return (myFilters(_idx[0]).seed);
1168 _parmidx[1-1] = _idx[1-1] + 1;
1171 OP_Utils::evalOpParmInst(result, thissop,
"seed#", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1180 if (!thissop)
return getSkeletonColor();
1182 OP_Utils::evalOpParm(result, thissop,
"skeletoncolor", cookparms.
getCookTime(), 0);
1190 if (!thissop)
return getApplyJointXforms();
1192 OP_Utils::evalOpParm(result, thissop,
"applyjointxforms", cookparms.
getCookTime(), 0);
1200 bool myUniqueAgentDefinitions;
1201 bool myApplyAgentXform;
1202 int64 myRestShapesMode;
1205 bool myLimitIterations;
1207 bool myAddShapeDeformerAttrib;
1209 bool myAddXformNameAttrib;
1211 bool myAddLayerNameAttrib;
1218 bool myApplyJointXforms;
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
void setFilters(const UT_Array< Filters > &val)
int64 getIterations() const
Output opOutput(const SOP_NodeVerb::CookParms &cookparms) const
void setApplyAgentXform(bool val)
bool isParmColorRamp(exint idx) const override
GLenum GLuint GLenum GLsizei const GLchar * buf
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
const UT_StringHolder & getTransferGroups() const
UT_StringHolder opinstFilters_jointnames(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
SOP_Node * getNode() const
static void loadData(UT_IStream &is, UT_Matrix4D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
bool operator!=(const SOP_AgentUnpackParms &src) const
fpreal64 opFilters_seed(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setClipNames(const UT_StringHolder &val)
UT_StringHolder opShapeFilter(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
static void saveData(std::ostream &os, UT_Matrix3D v)
const UT_Array< Filters > & getFilters() const
RestShapesMode opRestShapesMode(const SOP_NodeVerb::CookParms &cookparms) const
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
static void loadData(UT_IStream &is, UT_Vector4I &v)
constexpr SYS_FORCE_INLINE T & y() noexcept
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
GLsizei const GLfloat * value
const UT_StringHolder & getLayerNameAttrib() const
const UT_StringHolder & getShapeDeformerAttrib() const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
bool getApplyJointXforms() const
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
const OP_Context & context() const
bool getApplyAgentXform() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
bool opApplyJointXforms(const SOP_NodeVerb::CookParms &cookparms) const
bool operator==(const Filters &src) const
constexpr SYS_FORCE_INLINE T & z() noexcept
static void saveData(std::ostream &os, fpreal64 v)
void setAddLayerNameAttrib(bool val)
SYS_FORCE_INLINE const char * buffer() const
void setApplyJointXforms(bool val)
GLuint GLsizei GLsizei * length
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
exint getNestNumParms(TempIndex idx) const override
An output stream object that owns its own string buffer storage.
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
static void loadData(UT_IStream &is, UT_Vector3I &v)
void setTransferAttributes(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_Vector2I &v)
fpreal64 opinstFilters_percentage(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
UT_StringHolder opTransferAttributes(const SOP_NodeVerb::CookParms &cookparms) const
**But if you need a result
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
void setGroup(const UT_StringHolder &val)
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
bool opAddXformNameAttrib(const SOP_NodeVerb::CookParms &cookparms) const
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
fpreal64 opFilters_percentage(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
exint opFilters(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & x() noexcept
static void saveData(std::ostream &os, UT_Vector3D v)
void setAddXformNameAttrib(bool val)
UT_StringHolder opClipNames(const SOP_NodeVerb::CookParms &cookparms) const
GLuint GLsizei const GLuint const GLintptr * offsets
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
constexpr SYS_FORCE_INLINE T & x() noexcept
void setLimitIterations(bool val)
static void saveData(std::ostream &os, PRM_DataItemHandle s)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
const UT_StringHolder & getTransferAttributes() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
const UT_StringHolder & getXformNameAttrib() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
void setGroupType(GroupType val)
void setLayerNameAttrib(const UT_StringHolder &val)
const UT_StringHolder & getGroup() const
UT_Vector3D opSkeletonColor(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
bool load(UT_IStream &is)
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
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
bool getAddXformNameAttrib() const
void setLayerFilter(const UT_StringHolder &val)
exint read(bool *array, exint sz=1)
const OP_GraphProxy * graph() const
GroupType opGroupType(const SOP_NodeVerb::CookParms &cookparms) const
int64 opIterations(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
void loadFromOpSubclass(const LoadParms &loadparms) override
static void loadData(UT_IStream &is, int64 &v)
RestShapesMode getRestShapesMode() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
void setShapeFilter(const UT_StringHolder &val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
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
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
static void saveData(std::ostream &os, bool v)
static void saveData(std::ostream &os, int64 v)
static void saveData(std::ostream &os, UT_Vector4D v)
UT_Vector3T< fpreal64 > UT_Vector3D
const UT_StringHolder & getLayerFilter() const
void save(std::ostream &os) const
GroupType getGroupType() const
UT_StringHolder jointnames
const UT_StringHolder & getShapeFilter() const
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
static void loadData(UT_IStream &is, UT_Matrix3D &v)
static void saveData(std::ostream &os, UT_Matrix2D v)
bool opUniqueAgentDefinitions(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE void strcat(const char *src)
void saveBinary(std::ostream &os) const
Save string to binary stream.
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
GT_API const UT_StringHolder version
static void saveData(std::ostream &os, UT_StringHolder s)
exint entries() const
Alias of size(). size() is preferred.
void setSkeletonColor(UT_Vector3D val)
void setRestShapesMode(RestShapesMode val)
void copyFrom(const OP_NodeParms *src) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
int int appendSprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
void setOutput(Output val)
static void loadData(UT_IStream &is, bool &v)
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
bool operator!=(const Filters &src) const
static void loadData(UT_IStream &is, fpreal64 &v)
void setIterations(int64 val)
bool getLimitIterations() const
static void loadData(UT_IStream &is, UT_Vector3D &v)
DEP_MicroNode * depnode() const
UT_StringHolder opLayerNameAttrib(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector4D &v)
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
bool opAddLayerNameAttrib(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opFilters_jointnames(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
constexpr SYS_FORCE_INLINE T & w() noexcept
SYS_FORCE_INLINE void append(char character)
void setTransferGroups(const UT_StringHolder &val)
const UT_StringHolder & getClipNames() const
static void saveData(std::ostream &os, UT_Matrix4D v)
virtual UT_StringHolder baseGetSignature() const
void setXformNameAttrib(const UT_StringHolder &val)
bool operator==(const SOP_AgentUnpackParms &src) const
UT_StringHolder createString(const UT_Array< Filters > &list) const
bool getAddShapeDeformerAttrib() const
bool opAddShapeDeformerAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void setShapeDeformerAttrib(const UT_StringHolder &val)
fpreal getCookTime() const
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
fpreal64 opinstFilters_seed(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
const char * findChar(int c) const
bool getAddLayerNameAttrib() const
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
void setAddShapeDeformerAttrib(bool val)
UT_Vector3D getSkeletonColor() const
bool opLimitIterations(const SOP_NodeVerb::CookParms &cookparms) const
bool opApplyAgentXform(const SOP_NodeVerb::CookParms &cookparms) const
const char * getNestParmName(TempIndex fieldnum) const override
void setUniqueAgentDefinitions(bool val)
constexpr SYS_FORCE_INLINE T & y() noexcept
SYS_FORCE_INLINE UT_StringHolder getToken(GroupType enum_value)
static void loadData(UT_IStream &is, UT_Vector2D &v)
UT_StringHolder opTransferGroups(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opShapeDeformerAttrib(const SOP_NodeVerb::CookParms &cookparms) const
bool getUniqueAgentDefinitions() const
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
UT_StringHolder opXformNameAttrib(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
constexpr SYS_FORCE_INLINE T & y() noexcept
SYS_FORCE_INLINE bool isstring() const
static void saveData(std::ostream &os, UT_Vector2D v)
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
UT_StringHolder opLayerFilter(const SOP_NodeVerb::CookParms &cookparms) const
ParmType getNestParmType(TempIndex fieldnum) const override
constexpr SYS_FORCE_INLINE T & x() noexcept
static void loadData(UT_IStream &is, UT_StringHolder &v)