23 namespace SOP_CurveFrameEnums
37 using namespace UT::Literal;
61 using namespace UT::Literal;
82 using namespace UT::Literal;
103 using namespace UT::Literal;
104 switch (enum_value) {
127 using namespace UT::Literal;
128 switch (enum_value) {
150 using namespace UT::Literal;
151 switch (enum_value) {
173 using namespace UT::Literal;
174 switch (enum_value) {
193 using namespace UT::Literal;
194 switch (enum_value) {
211 myCurveGroup =
""_UTsh;
213 myContinuousClosed =
true;
214 myExtrapolateEndTangents =
false;
215 myTransformByAttribs =
false;
217 myUpVectorAtStart =
true;
218 myUseEndUpVector =
false;
219 myUpVectorAttrib =
"target_up"_UTsh;
220 myEndUpVectorAttrib =
"target_up_end"_UTsh;
223 myAdjustUpCurvature =
false;
224 myCurvatureScale = 1;
225 myEnableCurvatureScaleAttrib = 0;
226 myCurvatureScaleAttrib =
"speed"_UTsh;
227 myEnableCurvatureAttrib =
false;
228 myCurvatureAttrib =
"curvature"_UTsh;
235 myRollAttrib =
"roll"_UTsh;
240 myYawAttrib =
"yaw"_UTsh;
241 myApplyPitch =
false;
245 myPitchAttrib =
"pitch"_UTsh;
248 myStretchAroundTurns =
false;
249 myMaxStretchAroundTurns = 10;
251 myOutputXAxis =
false;
252 myXAxisName =
"out"_UTsh;
253 myOutputYAxis =
true;
254 myYAxisName =
"up"_UTsh;
255 myOutputZAxis =
true;
256 myZAxisName =
"N"_UTsh;
257 myOutputTranslation =
false;
258 myTranslationName =
"P"_UTsh;
259 myOutputQuaternion =
false;
260 myQuaternionName =
"orient"_UTsh;
261 myOutputTransform3 =
false;
262 myTransform3Name =
"transform"_UTsh;
263 myOutputTransform4 =
false;
264 myTransform4Name =
"transform"_UTsh;
277 if (myCurveGroup != src.myCurveGroup)
return false;
278 if (myTangentType != src.myTangentType)
return false;
279 if (myContinuousClosed != src.myContinuousClosed)
return false;
280 if (myExtrapolateEndTangents != src.myExtrapolateEndTangents)
return false;
281 if (myTransformByAttribs != src.myTransformByAttribs)
return false;
282 if (myUpVectorType != src.myUpVectorType)
return false;
283 if (myUpVectorAtStart != src.myUpVectorAtStart)
return false;
284 if (myUseEndUpVector != src.myUseEndUpVector)
return false;
285 if (myUpVectorAttrib != src.myUpVectorAttrib)
return false;
286 if (myEndUpVectorAttrib != src.myEndUpVectorAttrib)
return false;
287 if (myUpVector != src.myUpVector)
return false;
288 if (myEndUpVector != src.myEndUpVector)
return false;
289 if (myAdjustUpCurvature != src.myAdjustUpCurvature)
return false;
290 if (myCurvatureScale != src.myCurvatureScale)
return false;
291 if (myEnableCurvatureScaleAttrib != src.myEnableCurvatureScaleAttrib)
return false;
292 if (myCurvatureScaleAttrib != src.myCurvatureScaleAttrib)
return false;
293 if (myEnableCurvatureAttrib != src.myEnableCurvatureAttrib)
return false;
294 if (myCurvatureAttrib != src.myCurvatureAttrib)
return false;
295 if (myROrd != src.myROrd)
return false;
296 if (myApplyRoll != src.myApplyRoll)
return false;
297 if (myRoll != src.myRoll)
return false;
298 if (myRollPer != src.myRollPer)
return false;
299 if (myFullTwists != src.myFullTwists)
return false;
300 if (myIncRoll != src.myIncRoll)
return false;
301 if (myRollAttrib != src.myRollAttrib)
return false;
302 if (myApplyYaw != src.myApplyYaw)
return false;
303 if (myYaw != src.myYaw)
return false;
304 if (myYawPer != src.myYawPer)
return false;
305 if (myIncYaw != src.myIncYaw)
return false;
306 if (myYawAttrib != src.myYawAttrib)
return false;
307 if (myApplyPitch != src.myApplyPitch)
return false;
308 if (myPitch != src.myPitch)
return false;
309 if (myPitchPer != src.myPitchPer)
return false;
310 if (myIncPitch != src.myIncPitch)
return false;
311 if (myPitchAttrib != src.myPitchAttrib)
return false;
312 if (myNormalize != src.myNormalize)
return false;
313 if (myScale != src.myScale)
return false;
314 if (myStretchAroundTurns != src.myStretchAroundTurns)
return false;
315 if (myMaxStretchAroundTurns != src.myMaxStretchAroundTurns)
return false;
316 if (myClass != src.myClass)
return false;
317 if (myOutputXAxis != src.myOutputXAxis)
return false;
318 if (myXAxisName != src.myXAxisName)
return false;
319 if (myOutputYAxis != src.myOutputYAxis)
return false;
320 if (myYAxisName != src.myYAxisName)
return false;
321 if (myOutputZAxis != src.myOutputZAxis)
return false;
322 if (myZAxisName != src.myZAxisName)
return false;
323 if (myOutputTranslation != src.myOutputTranslation)
return false;
324 if (myTranslationName != src.myTranslationName)
return false;
325 if (myOutputQuaternion != src.myOutputQuaternion)
return false;
326 if (myQuaternionName != src.myQuaternionName)
return false;
327 if (myOutputTransform3 != src.myOutputTransform3)
return false;
328 if (myTransform3Name != src.myTransform3Name)
return false;
329 if (myOutputTransform4 != src.myOutputTransform4)
return false;
330 if (myTransform4Name != src.myTransform4Name)
return false;
354 myCurveGroup =
""_UTsh;
356 graph->
evalOpParm(myCurveGroup, nodeidx,
"group", time, graph->
isDirect()?
nullptr:depnode);
359 graph->
evalOpParm(myTangentType, nodeidx,
"tangenttype", time, graph->
isDirect()?
nullptr:depnode);
360 myContinuousClosed =
true;
361 if (
true && ( (
true&&!(((
int64(getTangentType())==4)))) ) )
362 graph->
evalOpParm(myContinuousClosed, nodeidx,
"continuousclosed", time, graph->
isDirect()?
nullptr:depnode);
363 myExtrapolateEndTangents =
false;
364 if (
true && ( (
true&&!(((
int64(getTangentType())==4)))) ) )
365 graph->
evalOpParm(myExtrapolateEndTangents, nodeidx,
"extrapolateendtangents", time, graph->
isDirect()?
nullptr:depnode);
366 myTransformByAttribs =
false;
368 graph->
evalOpParm(myTransformByAttribs, nodeidx,
"transformbyattribs", time, graph->
isDirect()?
nullptr:depnode);
370 if (
true && ( (
true&&!(((
int64(getTangentType())==4)))) ) )
371 graph->
evalOpParm(myUpVectorType, nodeidx,
"upvectortype", time, graph->
isDirect()?
nullptr:depnode);
372 myUpVectorAtStart =
true;
373 if (
true && ( (
true&&!(((
int64(getTangentType())==4)))) ) )
374 graph->
evalOpParm(myUpVectorAtStart, nodeidx,
"upvectoratstart", time, graph->
isDirect()?
nullptr:depnode);
375 myUseEndUpVector =
false;
376 if (
true && ( (
true&&!(((
int64(getTangentType())==4))||((getUpVectorAtStart()==0)))) ) )
377 graph->
evalOpParm(myUseEndUpVector, nodeidx,
"useendupvector", time, graph->
isDirect()?
nullptr:depnode);
378 myUpVectorAttrib =
"target_up"_UTsh;
379 if (
true && ( (
true&&!(((
int64(getTangentType())==4))||((
int64(getUpVectorType())!=4))||((
int64(getTangentType())==4))||((
int64(getUpVectorType())!=4)))) ) )
380 graph->
evalOpParm(myUpVectorAttrib, nodeidx,
"upvectorattrib", time, graph->
isDirect()?
nullptr:depnode);
381 myEndUpVectorAttrib =
"target_up_end"_UTsh;
382 if (
true && ( (
true&&!(((
int64(getTangentType())==4))||((
int64(getUpVectorType())!=4))||((getUseEndUpVector()==0))||((getUpVectorAtStart()==0))||((
int64(getTangentType())==4))||((
int64(getUpVectorType())!=4))||((getUseEndUpVector()==0))||((getUpVectorAtStart()==0)))) ) )
383 graph->
evalOpParm(myEndUpVectorAttrib, nodeidx,
"endupvectorattrib", time, graph->
isDirect()?
nullptr:depnode);
385 if (
true && ( (
true&&!(((
int64(getTangentType())==4))||((
int64(getUpVectorType())!=5))||((
int64(getTangentType())==4))||((
int64(getUpVectorType())!=5)))) ) )
386 graph->
evalOpParm(myUpVector, nodeidx,
"upvector", time, graph->
isDirect()?
nullptr:depnode);
388 if (
true && ( (
true&&!(((
int64(getTangentType())==4))||((
int64(getUpVectorType())!=5))||((getUseEndUpVector()==0))||((getUpVectorAtStart()==0))||((
int64(getTangentType())==4))||((
int64(getUpVectorType())!=5))||((getUseEndUpVector()==0))||((getUpVectorAtStart()==0)))) ) )
389 graph->
evalOpParm(myEndUpVector, nodeidx,
"endupvector", time, graph->
isDirect()?
nullptr:depnode);
390 myAdjustUpCurvature =
false;
392 graph->
evalOpParm(myAdjustUpCurvature, nodeidx,
"adjustupcurvature", time, graph->
isDirect()?
nullptr:depnode);
393 myCurvatureScale = 1;
394 if (
true && ( (
true&&!(((getAdjustUpCurvature()==0)))) ) )
395 graph->
evalOpParm(myCurvatureScale, nodeidx,
"curvaturescale", time, graph->
isDirect()?
nullptr:depnode);
396 myEnableCurvatureScaleAttrib = 0;
397 if (
true && ( (
true&&!(((getAdjustUpCurvature()==0)))) ) )
398 graph->
evalOpParm(myEnableCurvatureScaleAttrib, nodeidx,
"enablecurvaturescaleattrib", time, graph->
isDirect()?
nullptr:depnode);
399 myCurvatureScaleAttrib =
"speed"_UTsh;
400 if (
true && ( (
true&&!(((getAdjustUpCurvature()==0))||((
int64(getEnableCurvatureScaleAttrib())==0)))) ) )
401 graph->
evalOpParm(myCurvatureScaleAttrib, nodeidx,
"curvaturescaleattrib", time, graph->
isDirect()?
nullptr:depnode);
402 myEnableCurvatureAttrib =
false;
403 if (
true && ( (
true&&!(((getAdjustUpCurvature()==0)))) ) )
404 graph->
evalOpParm(myEnableCurvatureAttrib, nodeidx,
"enablecurvatureattrib", time, graph->
isDirect()?
nullptr:depnode);
405 myCurvatureAttrib =
"curvature"_UTsh;
406 if (
true && ( (
true&&!(((getAdjustUpCurvature()==0))||((getEnableCurvatureAttrib()==0)))) ) )
407 graph->
evalOpParm(myCurvatureAttrib, nodeidx,
"curvatureattrib", time, graph->
isDirect()?
nullptr:depnode);
413 graph->
evalOpParm(myApplyRoll, nodeidx,
"applyroll", time, graph->
isDirect()?
nullptr:depnode);
415 if (
true && ( (
true&&!(((getApplyRoll()==0)))) ) )
418 if (
true && ( (
true&&!(((getApplyRoll()==0)))) ) )
419 graph->
evalOpParm(myRollPer, nodeidx,
"rollper", time, graph->
isDirect()?
nullptr:depnode);
421 if (
true && ( (
true&&!(((getApplyRoll()==0)))) ) )
422 graph->
evalOpParm(myFullTwists, nodeidx,
"fulltwists", time, graph->
isDirect()?
nullptr:depnode);
424 if (
true && ( (
true&&!(((getApplyRoll()==0)))) ) )
425 graph->
evalOpParm(myIncRoll, nodeidx,
"incroll", time, graph->
isDirect()?
nullptr:depnode);
426 myRollAttrib =
"roll"_UTsh;
427 if (
true && ( (
true&&!(((getApplyRoll()==0))||((getApplyRoll()==1)&&(
int64(getRollPer())!=2))||((getApplyRoll()==0))||((getApplyRoll()==1)&&(
int64(getRollPer())!=2)))) ) )
428 graph->
evalOpParm(myRollAttrib, nodeidx,
"rollattrib", time, graph->
isDirect()?
nullptr:depnode);
431 graph->
evalOpParm(myApplyYaw, nodeidx,
"applyyaw", time, graph->
isDirect()?
nullptr:depnode);
433 if (
true && ( (
true&&!(((getApplyYaw()==0)))) ) )
436 if (
true && ( (
true&&!(((getApplyYaw()==0)))) ) )
437 graph->
evalOpParm(myYawPer, nodeidx,
"yawper", time, graph->
isDirect()?
nullptr:depnode);
439 if (
true && ( (
true&&!(((getApplyYaw()==0)))) ) )
440 graph->
evalOpParm(myIncYaw, nodeidx,
"incyaw", time, graph->
isDirect()?
nullptr:depnode);
441 myYawAttrib =
"yaw"_UTsh;
442 if (
true && ( (
true&&!(((getApplyYaw()==0))||((getApplyYaw()==1)&&(
int64(getYawPer())!=2))||((getApplyYaw()==0))||((getApplyYaw()==1)&&(
int64(getYawPer())!=2)))) ) )
443 graph->
evalOpParm(myYawAttrib, nodeidx,
"yawattrib", time, graph->
isDirect()?
nullptr:depnode);
444 myApplyPitch =
false;
446 graph->
evalOpParm(myApplyPitch, nodeidx,
"applypitch", time, graph->
isDirect()?
nullptr:depnode);
448 if (
true && ( (
true&&!(((getApplyPitch()==0)))) ) )
449 graph->
evalOpParm(myPitch, nodeidx,
"pitch", time, graph->
isDirect()?
nullptr:depnode);
451 if (
true && ( (
true&&!(((getApplyPitch()==0)))) ) )
452 graph->
evalOpParm(myPitchPer, nodeidx,
"pitchper", time, graph->
isDirect()?
nullptr:depnode);
454 if (
true && ( (
true&&!(((getApplyPitch()==0)))) ) )
455 graph->
evalOpParm(myIncPitch, nodeidx,
"incpitch", time, graph->
isDirect()?
nullptr:depnode);
456 myPitchAttrib =
"pitch"_UTsh;
457 if (
true && ( (
true&&!(((getApplyPitch()==0))||((getApplyPitch()==1)&&(
int64(getPitchPer())!=2))||((getApplyPitch()==0))||((getApplyPitch()==1)&&(
int64(getPitchPer())!=2)))) ) )
458 graph->
evalOpParm(myPitchAttrib, nodeidx,
"pitchattrib", time, graph->
isDirect()?
nullptr:depnode);
461 graph->
evalOpParm(myNormalize, nodeidx,
"normalize", time, graph->
isDirect()?
nullptr:depnode);
464 graph->
evalOpParm(myScale, nodeidx,
"scale", time, graph->
isDirect()?
nullptr:depnode);
465 myStretchAroundTurns =
false;
467 graph->
evalOpParm(myStretchAroundTurns, nodeidx,
"stretcharoundturns", time, graph->
isDirect()?
nullptr:depnode);
468 myMaxStretchAroundTurns = 10;
469 if (
true && ( (
true&&!(((getStretchAroundTurns()==0)))) ) )
470 graph->
evalOpParm(myMaxStretchAroundTurns, nodeidx,
"maxstretcharoundturns", time, graph->
isDirect()?
nullptr:depnode);
473 graph->
evalOpParm(myClass, nodeidx,
"class", time, graph->
isDirect()?
nullptr:depnode);
474 myOutputXAxis =
false;
476 graph->
evalOpParm(myOutputXAxis, nodeidx,
"outputxaxis", time, graph->
isDirect()?
nullptr:depnode);
477 myXAxisName =
"out"_UTsh;
478 if (
true && ( (
true&&!(((getOutputXAxis()==0)))) ) )
479 graph->
evalOpParm(myXAxisName, nodeidx,
"xaxisname", time, graph->
isDirect()?
nullptr:depnode);
480 myOutputYAxis =
true;
482 graph->
evalOpParm(myOutputYAxis, nodeidx,
"outputyaxis", time, graph->
isDirect()?
nullptr:depnode);
483 myYAxisName =
"up"_UTsh;
484 if (
true && ( (
true&&!(((getOutputYAxis()==0)))) ) )
485 graph->
evalOpParm(myYAxisName, nodeidx,
"yaxisname", time, graph->
isDirect()?
nullptr:depnode);
486 myOutputZAxis =
true;
488 graph->
evalOpParm(myOutputZAxis, nodeidx,
"outputzaxis", time, graph->
isDirect()?
nullptr:depnode);
489 myZAxisName =
"N"_UTsh;
490 if (
true && ( (
true&&!(((getOutputZAxis()==0)))) ) )
491 graph->
evalOpParm(myZAxisName, nodeidx,
"zaxisname", time, graph->
isDirect()?
nullptr:depnode);
492 myOutputTranslation =
false;
494 graph->
evalOpParm(myOutputTranslation, nodeidx,
"outputtranslation", time, graph->
isDirect()?
nullptr:depnode);
495 myTranslationName =
"P"_UTsh;
496 if (
true && ( (
true&&!(((getOutputTranslation()==0)))) ) )
497 graph->
evalOpParm(myTranslationName, nodeidx,
"translationname", time, graph->
isDirect()?
nullptr:depnode);
498 myOutputQuaternion =
false;
500 graph->
evalOpParm(myOutputQuaternion, nodeidx,
"outputquaternion", time, graph->
isDirect()?
nullptr:depnode);
501 myQuaternionName =
"orient"_UTsh;
502 if (
true && ( (
true&&!(((getOutputQuaternion()==0)))) ) )
503 graph->
evalOpParm(myQuaternionName, nodeidx,
"quaternionname", time, graph->
isDirect()?
nullptr:depnode);
504 myOutputTransform3 =
false;
506 graph->
evalOpParm(myOutputTransform3, nodeidx,
"outputtransform3", time, graph->
isDirect()?
nullptr:depnode);
507 myTransform3Name =
"transform"_UTsh;
508 if (
true && ( (
true&&!(((getOutputTransform3()==0)))) ) )
509 graph->
evalOpParm(myTransform3Name, nodeidx,
"transform3name", time, graph->
isDirect()?
nullptr:depnode);
510 myOutputTransform4 =
false;
512 graph->
evalOpParm(myOutputTransform4, nodeidx,
"outputtransform4", time, graph->
isDirect()?
nullptr:depnode);
513 myTransform4Name =
"transform"_UTsh;
514 if (
true && ( (
true&&!(((getOutputTransform4()==0)))) ) )
515 graph->
evalOpParm(myTransform4Name, nodeidx,
"transform4name", time, graph->
isDirect()?
nullptr:depnode);
531 template <
typename T>
538 if (idx.
size() != instance.
size()+1)
543 coerceValue(value, myCurveGroup);
546 coerceValue(value, myTangentType);
549 coerceValue(value, myContinuousClosed);
552 coerceValue(value, myExtrapolateEndTangents);
555 coerceValue(value, myTransformByAttribs);
558 coerceValue(value, myUpVectorType);
561 coerceValue(value, myUpVectorAtStart);
564 coerceValue(value, myUseEndUpVector);
567 coerceValue(value, myUpVectorAttrib);
570 coerceValue(value, myEndUpVectorAttrib);
573 coerceValue(value, myUpVector);
576 coerceValue(value, myEndUpVector);
579 coerceValue(value, myAdjustUpCurvature);
582 coerceValue(value, myCurvatureScale);
585 coerceValue(value, myEnableCurvatureScaleAttrib);
588 coerceValue(value, myCurvatureScaleAttrib);
591 coerceValue(value, myEnableCurvatureAttrib);
594 coerceValue(value, myCurvatureAttrib);
597 coerceValue(value, myROrd);
600 coerceValue(value, myApplyRoll);
603 coerceValue(value, myRoll);
606 coerceValue(value, myRollPer);
609 coerceValue(value, myFullTwists);
612 coerceValue(value, myIncRoll);
615 coerceValue(value, myRollAttrib);
618 coerceValue(value, myApplyYaw);
621 coerceValue(value, myYaw);
624 coerceValue(value, myYawPer);
627 coerceValue(value, myIncYaw);
630 coerceValue(value, myYawAttrib);
633 coerceValue(value, myApplyPitch);
636 coerceValue(value, myPitch);
639 coerceValue(value, myPitchPer);
642 coerceValue(value, myIncPitch);
645 coerceValue(value, myPitchAttrib);
648 coerceValue(value, myNormalize);
651 coerceValue(value, myScale);
654 coerceValue(value, myStretchAroundTurns);
657 coerceValue(value, myMaxStretchAroundTurns);
660 coerceValue(value, myClass);
663 coerceValue(value, myOutputXAxis);
666 coerceValue(value, myXAxisName);
669 coerceValue(value, myOutputYAxis);
672 coerceValue(value, myYAxisName);
675 coerceValue(value, myOutputZAxis);
678 coerceValue(value, myZAxisName);
681 coerceValue(value, myOutputTranslation);
684 coerceValue(value, myTranslationName);
687 coerceValue(value, myOutputQuaternion);
690 coerceValue(value, myQuaternionName);
693 coerceValue(value, myOutputTransform3);
696 coerceValue(value, myTransform3Name);
699 coerceValue(value, myOutputTransform4);
702 coerceValue(value, myTransform4Name);
718 { doGetParmValue(idx, instance, value); }
720 { doGetParmValue(idx, instance, value); }
722 { doGetParmValue(idx, instance, value); }
724 { doGetParmValue(idx, instance, value); }
726 { doGetParmValue(idx, instance, value); }
728 { doGetParmValue(idx, instance, value); }
730 { doGetParmValue(idx, instance, value); }
732 { doGetParmValue(idx, instance, value); }
734 { doGetParmValue(idx, instance, value); }
736 { doGetParmValue(idx, instance, value); }
738 { doGetParmValue(idx, instance, value); }
740 template <
typename T>
747 if (idx.
size() != instance.
size()+1)
752 coerceValue(myCurveGroup, ( ( value ) ));
755 coerceValue(myTangentType, clampMinValue(0, clampMaxValue(4, value ) ));
758 coerceValue(myContinuousClosed, ( ( value ) ));
761 coerceValue(myExtrapolateEndTangents, ( ( value ) ));
764 coerceValue(myTransformByAttribs, ( ( value ) ));
767 coerceValue(myUpVectorType, clampMinValue(0, clampMaxValue(5, value ) ));
770 coerceValue(myUpVectorAtStart, ( ( value ) ));
773 coerceValue(myUseEndUpVector, ( ( value ) ));
776 coerceValue(myUpVectorAttrib, ( ( value ) ));
779 coerceValue(myEndUpVectorAttrib, ( ( value ) ));
782 coerceValue(myUpVector, ( ( value ) ));
785 coerceValue(myEndUpVector, ( ( value ) ));
788 coerceValue(myAdjustUpCurvature, ( ( value ) ));
791 coerceValue(myCurvatureScale, ( ( value ) ));
794 coerceValue(myEnableCurvatureScaleAttrib, clampMinValue(0, clampMaxValue(1, value ) ));
797 coerceValue(myCurvatureScaleAttrib, ( ( value ) ));
800 coerceValue(myEnableCurvatureAttrib, ( ( value ) ));
803 coerceValue(myCurvatureAttrib, ( ( value ) ));
806 coerceValue(myROrd, clampMinValue(0, clampMaxValue(5, value ) ));
809 coerceValue(myApplyRoll, ( ( value ) ));
812 coerceValue(myRoll, ( ( value ) ));
815 coerceValue(myRollPer, clampMinValue(0, clampMaxValue(4, value ) ));
818 coerceValue(myFullTwists, ( ( value ) ));
821 coerceValue(myIncRoll, ( ( value ) ));
824 coerceValue(myRollAttrib, ( ( value ) ));
827 coerceValue(myApplyYaw, ( ( value ) ));
830 coerceValue(myYaw, ( ( value ) ));
833 coerceValue(myYawPer, clampMinValue(0, clampMaxValue(4, value ) ));
836 coerceValue(myIncYaw, ( ( value ) ));
839 coerceValue(myYawAttrib, ( ( value ) ));
842 coerceValue(myApplyPitch, ( ( value ) ));
845 coerceValue(myPitch, ( ( value ) ));
848 coerceValue(myPitchPer, clampMinValue(0, clampMaxValue(4, value ) ));
851 coerceValue(myIncPitch, ( ( value ) ));
854 coerceValue(myPitchAttrib, ( ( value ) ));
857 coerceValue(myNormalize, ( ( value ) ));
860 coerceValue(myScale, ( ( value ) ));
863 coerceValue(myStretchAroundTurns, ( ( value ) ));
866 coerceValue(myMaxStretchAroundTurns, clampMinValue(1, ( value ) ));
869 coerceValue(myClass, clampMinValue(0, clampMaxValue(1, value ) ));
872 coerceValue(myOutputXAxis, ( ( value ) ));
875 coerceValue(myXAxisName, ( ( value ) ));
878 coerceValue(myOutputYAxis, ( ( value ) ));
881 coerceValue(myYAxisName, ( ( value ) ));
884 coerceValue(myOutputZAxis, ( ( value ) ));
887 coerceValue(myZAxisName, ( ( value ) ));
890 coerceValue(myOutputTranslation, ( ( value ) ));
893 coerceValue(myTranslationName, ( ( value ) ));
896 coerceValue(myOutputQuaternion, ( ( value ) ));
899 coerceValue(myQuaternionName, ( ( value ) ));
902 coerceValue(myOutputTransform3, ( ( value ) ));
905 coerceValue(myTransform3Name, ( ( value ) ));
908 coerceValue(myOutputTransform4, ( ( value ) ));
911 coerceValue(myTransform4Name, ( ( value ) ));
918 { doSetParmValue(idx, instance, value); }
920 { doSetParmValue(idx, instance, value); }
922 { doSetParmValue(idx, instance, value); }
924 { doSetParmValue(idx, instance, value); }
926 { doSetParmValue(idx, instance, value); }
928 { doSetParmValue(idx, instance, value); }
930 { doSetParmValue(idx, instance, value); }
932 { doSetParmValue(idx, instance, value); }
934 { doSetParmValue(idx, instance, value); }
936 { doSetParmValue(idx, instance, value); }
938 { doSetParmValue(idx, instance, value); }
954 if (fieldnum.
size() < 1)
961 return "tangenttype";
963 return "continuousclosed";
965 return "extrapolateendtangents";
967 return "transformbyattribs";
969 return "upvectortype";
971 return "upvectoratstart";
973 return "useendupvector";
975 return "upvectorattrib";
977 return "endupvectorattrib";
981 return "endupvector";
983 return "adjustupcurvature";
985 return "curvaturescale";
987 return "enablecurvaturescaleattrib";
989 return "curvaturescaleattrib";
991 return "enablecurvatureattrib";
993 return "curvatureattrib";
1003 return "fulltwists";
1007 return "rollattrib";
1019 return "applypitch";
1027 return "pitchattrib";
1033 return "stretcharoundturns";
1035 return "maxstretcharoundturns";
1039 return "outputxaxis";
1043 return "outputyaxis";
1047 return "outputzaxis";
1051 return "outputtranslation";
1053 return "translationname";
1055 return "outputquaternion";
1057 return "quaternionname";
1059 return "outputtransform3";
1061 return "transform3name";
1063 return "outputtransform4";
1065 return "transform4name";
1073 if (fieldnum.
size() < 1)
1074 return PARM_UNSUPPORTED;
1075 switch (fieldnum[0])
1080 return PARM_INTEGER;
1082 return PARM_INTEGER;
1084 return PARM_INTEGER;
1086 return PARM_INTEGER;
1088 return PARM_INTEGER;
1090 return PARM_INTEGER;
1092 return PARM_INTEGER;
1098 return PARM_VECTOR3;
1100 return PARM_VECTOR3;
1102 return PARM_INTEGER;
1106 return PARM_INTEGER;
1110 return PARM_INTEGER;
1114 return PARM_INTEGER;
1116 return PARM_INTEGER;
1120 return PARM_INTEGER;
1122 return PARM_INTEGER;
1128 return PARM_INTEGER;
1132 return PARM_INTEGER;
1138 return PARM_INTEGER;
1142 return PARM_INTEGER;
1148 return PARM_INTEGER;
1152 return PARM_INTEGER;
1156 return PARM_INTEGER;
1158 return PARM_INTEGER;
1162 return PARM_INTEGER;
1166 return PARM_INTEGER;
1170 return PARM_INTEGER;
1174 return PARM_INTEGER;
1178 return PARM_INTEGER;
1182 return PARM_INTEGER;
1187 return PARM_UNSUPPORTED;
1192 { is.
bread(&v, 1); }
1223 loadData(is, rampdata);
1241 int typelen = colon - data.
buffer();
1253 { UTwrite(os, &v); }
1255 {
int64 iv =
v; UTwrite(os, &iv); }
1257 { UTwrite<fpreal64>(os, &
v); }
1259 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
1261 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1262 UTwrite<fpreal64>(os, &v.
z()); }
1264 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1265 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
1277 if (s) s->save(ostr);
1278 result = ostr.
str();
1279 saveData(os, result);
1286 ostr << s->getDataTypeToken();
1288 s->saveBinary(ostr);
1290 result = ostr.
str();
1291 saveData(os, result);
1299 saveData(os, myCurveGroup);
1300 saveData(os, myTangentType);
1301 saveData(os, myContinuousClosed);
1302 saveData(os, myExtrapolateEndTangents);
1303 saveData(os, myTransformByAttribs);
1304 saveData(os, myUpVectorType);
1305 saveData(os, myUpVectorAtStart);
1306 saveData(os, myUseEndUpVector);
1307 saveData(os, myUpVectorAttrib);
1308 saveData(os, myEndUpVectorAttrib);
1309 saveData(os, myUpVector);
1310 saveData(os, myEndUpVector);
1311 saveData(os, myAdjustUpCurvature);
1312 saveData(os, myCurvatureScale);
1313 saveData(os, myEnableCurvatureScaleAttrib);
1314 saveData(os, myCurvatureScaleAttrib);
1315 saveData(os, myEnableCurvatureAttrib);
1316 saveData(os, myCurvatureAttrib);
1317 saveData(os, myROrd);
1318 saveData(os, myApplyRoll);
1319 saveData(os, myRoll);
1320 saveData(os, myRollPer);
1321 saveData(os, myFullTwists);
1322 saveData(os, myIncRoll);
1323 saveData(os, myRollAttrib);
1324 saveData(os, myApplyYaw);
1325 saveData(os, myYaw);
1326 saveData(os, myYawPer);
1327 saveData(os, myIncYaw);
1328 saveData(os, myYawAttrib);
1329 saveData(os, myApplyPitch);
1330 saveData(os, myPitch);
1331 saveData(os, myPitchPer);
1332 saveData(os, myIncPitch);
1333 saveData(os, myPitchAttrib);
1334 saveData(os, myNormalize);
1335 saveData(os, myScale);
1336 saveData(os, myStretchAroundTurns);
1337 saveData(os, myMaxStretchAroundTurns);
1338 saveData(os, myClass);
1339 saveData(os, myOutputXAxis);
1340 saveData(os, myXAxisName);
1341 saveData(os, myOutputYAxis);
1342 saveData(os, myYAxisName);
1343 saveData(os, myOutputZAxis);
1344 saveData(os, myZAxisName);
1345 saveData(os, myOutputTranslation);
1346 saveData(os, myTranslationName);
1347 saveData(os, myOutputQuaternion);
1348 saveData(os, myQuaternionName);
1349 saveData(os, myOutputTransform3);
1350 saveData(os, myTransform3Name);
1351 saveData(os, myOutputTransform4);
1352 saveData(os, myTransform4Name);
1365 loadData(is, myCurveGroup);
1366 loadData(is, myTangentType);
1367 loadData(is, myContinuousClosed);
1368 loadData(is, myExtrapolateEndTangents);
1369 loadData(is, myTransformByAttribs);
1370 loadData(is, myUpVectorType);
1371 loadData(is, myUpVectorAtStart);
1372 loadData(is, myUseEndUpVector);
1373 loadData(is, myUpVectorAttrib);
1374 loadData(is, myEndUpVectorAttrib);
1375 loadData(is, myUpVector);
1376 loadData(is, myEndUpVector);
1377 loadData(is, myAdjustUpCurvature);
1378 loadData(is, myCurvatureScale);
1379 loadData(is, myEnableCurvatureScaleAttrib);
1380 loadData(is, myCurvatureScaleAttrib);
1381 loadData(is, myEnableCurvatureAttrib);
1382 loadData(is, myCurvatureAttrib);
1383 loadData(is, myROrd);
1384 loadData(is, myApplyRoll);
1385 loadData(is, myRoll);
1386 loadData(is, myRollPer);
1387 loadData(is, myFullTwists);
1388 loadData(is, myIncRoll);
1389 loadData(is, myRollAttrib);
1390 loadData(is, myApplyYaw);
1391 loadData(is, myYaw);
1392 loadData(is, myYawPer);
1393 loadData(is, myIncYaw);
1394 loadData(is, myYawAttrib);
1395 loadData(is, myApplyPitch);
1396 loadData(is, myPitch);
1397 loadData(is, myPitchPer);
1398 loadData(is, myIncPitch);
1399 loadData(is, myPitchAttrib);
1400 loadData(is, myNormalize);
1401 loadData(is, myScale);
1402 loadData(is, myStretchAroundTurns);
1403 loadData(is, myMaxStretchAroundTurns);
1404 loadData(is, myClass);
1405 loadData(is, myOutputXAxis);
1406 loadData(is, myXAxisName);
1407 loadData(is, myOutputYAxis);
1408 loadData(is, myYAxisName);
1409 loadData(is, myOutputZAxis);
1410 loadData(is, myZAxisName);
1411 loadData(is, myOutputTranslation);
1412 loadData(is, myTranslationName);
1413 loadData(is, myOutputQuaternion);
1414 loadData(is, myQuaternionName);
1415 loadData(is, myOutputTransform3);
1416 loadData(is, myTransform3Name);
1417 loadData(is, myOutputTransform4);
1418 loadData(is, myTransform4Name);
1428 if (!thissop)
return getCurveGroup();
1430 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
1438 if (!thissop)
return getTangentType();
1440 OP_Utils::evalOpParm(result, thissop,
"tangenttype", cookparms.
getCookTime(), 0);
1448 if (!thissop)
return getContinuousClosed();
1450 OP_Utils::evalOpParm(result, thissop,
"continuousclosed", cookparms.
getCookTime(), 0);
1458 if (!thissop)
return getExtrapolateEndTangents();
1460 OP_Utils::evalOpParm(result, thissop,
"extrapolateendtangents", cookparms.
getCookTime(), 0);
1468 if (!thissop)
return getTransformByAttribs();
1470 OP_Utils::evalOpParm(result, thissop,
"transformbyattribs", cookparms.
getCookTime(), 0);
1478 if (!thissop)
return getUpVectorType();
1480 OP_Utils::evalOpParm(result, thissop,
"upvectortype", cookparms.
getCookTime(), 0);
1488 if (!thissop)
return getUpVectorAtStart();
1490 OP_Utils::evalOpParm(result, thissop,
"upvectoratstart", cookparms.
getCookTime(), 0);
1498 if (!thissop)
return getUseEndUpVector();
1500 OP_Utils::evalOpParm(result, thissop,
"useendupvector", cookparms.
getCookTime(), 0);
1508 if (!thissop)
return getUpVectorAttrib();
1510 OP_Utils::evalOpParm(result, thissop,
"upvectorattrib", cookparms.
getCookTime(), 0);
1518 if (!thissop)
return getEndUpVectorAttrib();
1520 OP_Utils::evalOpParm(result, thissop,
"endupvectorattrib", cookparms.
getCookTime(), 0);
1528 if (!thissop)
return getUpVector();
1530 OP_Utils::evalOpParm(result, thissop,
"upvector", cookparms.
getCookTime(), 0);
1538 if (!thissop)
return getEndUpVector();
1540 OP_Utils::evalOpParm(result, thissop,
"endupvector", cookparms.
getCookTime(), 0);
1548 if (!thissop)
return getAdjustUpCurvature();
1550 OP_Utils::evalOpParm(result, thissop,
"adjustupcurvature", cookparms.
getCookTime(), 0);
1558 if (!thissop)
return getCurvatureScale();
1560 OP_Utils::evalOpParm(result, thissop,
"curvaturescale", cookparms.
getCookTime(), 0);
1568 if (!thissop)
return getEnableCurvatureScaleAttrib();
1570 OP_Utils::evalOpParm(result, thissop,
"enablecurvaturescaleattrib", cookparms.
getCookTime(), 0);
1578 if (!thissop)
return getCurvatureScaleAttrib();
1580 OP_Utils::evalOpParm(result, thissop,
"curvaturescaleattrib", cookparms.
getCookTime(), 0);
1588 if (!thissop)
return getEnableCurvatureAttrib();
1590 OP_Utils::evalOpParm(result, thissop,
"enablecurvatureattrib", cookparms.
getCookTime(), 0);
1598 if (!thissop)
return getCurvatureAttrib();
1600 OP_Utils::evalOpParm(result, thissop,
"curvatureattrib", cookparms.
getCookTime(), 0);
1608 if (!thissop)
return getROrd();
1610 OP_Utils::evalOpParm(result, thissop,
"rOrd", cookparms.
getCookTime(), 0);
1611 return ROrd(result);
1618 if (!thissop)
return getApplyRoll();
1620 OP_Utils::evalOpParm(result, thissop,
"applyroll", cookparms.
getCookTime(), 0);
1628 if (!thissop)
return getRoll();
1630 OP_Utils::evalOpParm(result, thissop,
"roll", cookparms.
getCookTime(), 0);
1638 if (!thissop)
return getRollPer();
1640 OP_Utils::evalOpParm(result, thissop,
"rollper", cookparms.
getCookTime(), 0);
1648 if (!thissop)
return getFullTwists();
1650 OP_Utils::evalOpParm(result, thissop,
"fulltwists", cookparms.
getCookTime(), 0);
1658 if (!thissop)
return getIncRoll();
1660 OP_Utils::evalOpParm(result, thissop,
"incroll", cookparms.
getCookTime(), 0);
1668 if (!thissop)
return getRollAttrib();
1670 OP_Utils::evalOpParm(result, thissop,
"rollattrib", cookparms.
getCookTime(), 0);
1678 if (!thissop)
return getApplyYaw();
1680 OP_Utils::evalOpParm(result, thissop,
"applyyaw", cookparms.
getCookTime(), 0);
1688 if (!thissop)
return getYaw();
1690 OP_Utils::evalOpParm(result, thissop,
"yaw", cookparms.
getCookTime(), 0);
1698 if (!thissop)
return getYawPer();
1700 OP_Utils::evalOpParm(result, thissop,
"yawper", cookparms.
getCookTime(), 0);
1708 if (!thissop)
return getIncYaw();
1710 OP_Utils::evalOpParm(result, thissop,
"incyaw", cookparms.
getCookTime(), 0);
1718 if (!thissop)
return getYawAttrib();
1720 OP_Utils::evalOpParm(result, thissop,
"yawattrib", cookparms.
getCookTime(), 0);
1728 if (!thissop)
return getApplyPitch();
1730 OP_Utils::evalOpParm(result, thissop,
"applypitch", cookparms.
getCookTime(), 0);
1738 if (!thissop)
return getPitch();
1740 OP_Utils::evalOpParm(result, thissop,
"pitch", cookparms.
getCookTime(), 0);
1748 if (!thissop)
return getPitchPer();
1750 OP_Utils::evalOpParm(result, thissop,
"pitchper", cookparms.
getCookTime(), 0);
1758 if (!thissop)
return getIncPitch();
1760 OP_Utils::evalOpParm(result, thissop,
"incpitch", cookparms.
getCookTime(), 0);
1768 if (!thissop)
return getPitchAttrib();
1770 OP_Utils::evalOpParm(result, thissop,
"pitchattrib", cookparms.
getCookTime(), 0);
1778 if (!thissop)
return getNormalize();
1780 OP_Utils::evalOpParm(result, thissop,
"normalize", cookparms.
getCookTime(), 0);
1790 OP_Utils::evalOpParm(result, thissop,
"scale", cookparms.
getCookTime(), 0);
1798 if (!thissop)
return getStretchAroundTurns();
1800 OP_Utils::evalOpParm(result, thissop,
"stretcharoundturns", cookparms.
getCookTime(), 0);
1808 if (!thissop)
return getMaxStretchAroundTurns();
1810 OP_Utils::evalOpParm(result, thissop,
"maxstretcharoundturns", cookparms.
getCookTime(), 0);
1818 if (!thissop)
return getClass();
1820 OP_Utils::evalOpParm(result, thissop,
"class", cookparms.
getCookTime(), 0);
1821 return Class(result);
1828 if (!thissop)
return getOutputXAxis();
1830 OP_Utils::evalOpParm(result, thissop,
"outputxaxis", cookparms.
getCookTime(), 0);
1838 if (!thissop)
return getXAxisName();
1840 OP_Utils::evalOpParm(result, thissop,
"xaxisname", cookparms.
getCookTime(), 0);
1848 if (!thissop)
return getOutputYAxis();
1850 OP_Utils::evalOpParm(result, thissop,
"outputyaxis", cookparms.
getCookTime(), 0);
1858 if (!thissop)
return getYAxisName();
1860 OP_Utils::evalOpParm(result, thissop,
"yaxisname", cookparms.
getCookTime(), 0);
1868 if (!thissop)
return getOutputZAxis();
1870 OP_Utils::evalOpParm(result, thissop,
"outputzaxis", cookparms.
getCookTime(), 0);
1878 if (!thissop)
return getZAxisName();
1880 OP_Utils::evalOpParm(result, thissop,
"zaxisname", cookparms.
getCookTime(), 0);
1888 if (!thissop)
return getOutputTranslation();
1890 OP_Utils::evalOpParm(result, thissop,
"outputtranslation", cookparms.
getCookTime(), 0);
1898 if (!thissop)
return getTranslationName();
1900 OP_Utils::evalOpParm(result, thissop,
"translationname", cookparms.
getCookTime(), 0);
1908 if (!thissop)
return getOutputQuaternion();
1910 OP_Utils::evalOpParm(result, thissop,
"outputquaternion", cookparms.
getCookTime(), 0);
1918 if (!thissop)
return getQuaternionName();
1920 OP_Utils::evalOpParm(result, thissop,
"quaternionname", cookparms.
getCookTime(), 0);
1928 if (!thissop)
return getOutputTransform3();
1930 OP_Utils::evalOpParm(result, thissop,
"outputtransform3", cookparms.
getCookTime(), 0);
1938 if (!thissop)
return getTransform3Name();
1940 OP_Utils::evalOpParm(result, thissop,
"transform3name", cookparms.
getCookTime(), 0);
1948 if (!thissop)
return getOutputTransform4();
1950 OP_Utils::evalOpParm(result, thissop,
"outputtransform4", cookparms.
getCookTime(), 0);
1958 if (!thissop)
return getTransform4Name();
1960 OP_Utils::evalOpParm(result, thissop,
"transform4name", cookparms.
getCookTime(), 0);
1966 int64 myTangentType;
1967 bool myContinuousClosed;
1968 bool myExtrapolateEndTangents;
1969 bool myTransformByAttribs;
1970 int64 myUpVectorType;
1971 bool myUpVectorAtStart;
1972 bool myUseEndUpVector;
1977 bool myAdjustUpCurvature;
1979 int64 myEnableCurvatureScaleAttrib;
1981 bool myEnableCurvatureAttrib;
2002 bool myStretchAroundTurns;
2011 bool myOutputTranslation;
2013 bool myOutputQuaternion;
2015 bool myOutputTransform3;
2017 bool myOutputTransform4;
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
static void loadData(UT_IStream &is, UT_Matrix3D &v)
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
bool opOutputTranslation(const SOP_NodeVerb::CookParms &cookparms) const
void setStretchAroundTurns(bool val)
void setTranslationName(const UT_StringHolder &val)
void setCurvatureScaleAttrib(const UT_StringHolder &val)
TangentType opTangentType(const SOP_NodeVerb::CookParms &cookparms) const
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
void setOutputTransform3(bool val)
fpreal64 opIncPitch(const SOP_NodeVerb::CookParms &cookparms) const
void setContinuousClosed(bool val)
void setEnableCurvatureScaleAttrib(EnableCurvatureScaleAttrib val)
static void saveData(std::ostream &os, UT_Matrix2D v)
UpVectorType opUpVectorType(const SOP_NodeVerb::CookParms &cookparms) const
void setOutputTransform4(bool val)
const UT_StringHolder & getQuaternionName() const
SOP_Node * getNode() const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
bool opOutputTransform4(const SOP_NodeVerb::CookParms &cookparms) const
bool opExtrapolateEndTangents(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
void setOutputXAxis(bool val)
const char * getNestParmName(TempIndex fieldnum) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
Class opClass(const SOP_NodeVerb::CookParms &cookparms) const
void setUpVectorAtStart(bool val)
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
UT_Vector3D opUpVector(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector2I &v)
const UT_StringHolder & getYawAttrib() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
bool getOutputTransform3() const
void setExtrapolateEndTangents(bool val)
const UT_StringHolder & getTransform4Name() const
exint bread(int32 *buffer, exint asize=1)
static void loadData(UT_IStream &is, UT_Vector4D &v)
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
UT_Vector3D getEndUpVector() const
void setOutputYAxis(bool val)
GLsizei const GLfloat * value
void setTransform3Name(const UT_StringHolder &val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
bool getOutputYAxis() const
bool opOutputTransform3(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3D getUpVector() const
const OP_Context & context() const
bool getOutputZAxis() const
fpreal64 opRoll(const SOP_NodeVerb::CookParms &cookparms) const
void setRoll(fpreal64 val)
static void loadData(UT_IStream &is, fpreal64 &v)
fpreal64 opIncYaw(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & z() noexcept
const UT_StringHolder & getYAxisName() const
bool opUpVectorAtStart(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE const char * buffer() const
void setXAxisName(const UT_StringHolder &val)
An output stream object that owns its own string buffer storage.
bool getTransformByAttribs() const
void setTransform4Name(const UT_StringHolder &val)
const UT_StringHolder & getRollAttrib() const
void setEndUpVectorAttrib(const UT_StringHolder &val)
**But if you need a result
void setOutputTranslation(bool val)
static void loadData(UT_IStream &is, UT_Vector4I &v)
void setUpVectorType(UpVectorType val)
bool operator==(const SOP_CurveFrameParms &src) const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
static void loadData(UT_IStream &is, UT_Matrix2D &v)
static void saveData(std::ostream &os, UT_StringHolder s)
UT_StringHolder opTransform4Name(const SOP_NodeVerb::CookParms &cookparms) 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.
static void saveData(std::ostream &os, UT_Vector3D v)
void save(std::ostream &os) const
const UT_StringHolder & getTranslationName() const
void setYawPer(YawPer val)
const UT_StringHolder & getUpVectorAttrib() const
constexpr SYS_FORCE_INLINE T & x() noexcept
void setUpVector(UT_Vector3D val)
bool load(UT_IStream &is)
void setEndUpVector(UT_Vector3D val)
void setIncPitch(fpreal64 val)
bool opOutputQuaternion(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
void setPitchPer(PitchPer val)
constexpr SYS_FORCE_INLINE T & x() noexcept
PitchPer getPitchPer() const
static void saveData(std::ostream &os, UT_Vector4D v)
static void saveData(std::ostream &os, bool v)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
ParmType getNestParmType(TempIndex fieldnum) const override
void setZAxisName(const UT_StringHolder &val)
bool getOutputQuaternion() const
bool getUseEndUpVector() const
bool getUpVectorAtStart() const
EnableCurvatureScaleAttrib getEnableCurvatureScaleAttrib() const
fpreal64 opCurvatureScale(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getIncYaw() const
UT_StringHolder opCurvatureAttrib(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opYaw(const SOP_NodeVerb::CookParms &cookparms) const
UpVectorType getUpVectorType() const
bool getContinuousClosed() const
void setCurveGroup(const UT_StringHolder &val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
bool opStretchAroundTurns(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
bool opAdjustUpCurvature(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & z() noexcept
bool isParmColorRamp(exint idx) const override
EnableCurvatureScaleAttrib opEnableCurvatureScaleAttrib(const SOP_NodeVerb::CookParms &cookparms) const
const OP_GraphProxy * graph() const
fpreal64 getIncRoll() const
UT_StringHolder opTransform3Name(const SOP_NodeVerb::CookParms &cookparms) const
void setCurvatureScale(fpreal64 val)
static void loadData(UT_IStream &is, bool &v)
void setCurvatureAttrib(const UT_StringHolder &val)
UT_StringHolder opCurvatureScaleAttrib(const SOP_NodeVerb::CookParms &cookparms) const
bool getOutputXAxis() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
void setApplyRoll(bool val)
static void saveData(std::ostream &os, UT_Matrix4D v)
void setPitchAttrib(const UT_StringHolder &val)
const UT_StringHolder & getZAxisName() const
void setYawAttrib(const UT_StringHolder &val)
RollPer opRollPer(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
TangentType getTangentType() const
bool getEnableCurvatureAttrib() const
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
UT_Vector3T< fpreal64 > UT_Vector3D
static void saveData(std::ostream &os, fpreal64 v)
UT_Vector3D opEndUpVector(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opEndUpVectorAttrib(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getCurveGroup() const
void setApplyYaw(bool val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
UT_StringHolder opRollAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void setOutputQuaternion(bool val)
bool opApplyRoll(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector3I &v)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void setIncYaw(fpreal64 val)
bool opApplyYaw(const SOP_NodeVerb::CookParms &cookparms) const
bool opUseEndUpVector(const SOP_NodeVerb::CookParms &cookparms) const
void setUpVectorAttrib(const UT_StringHolder &val)
EnableCurvatureScaleAttrib
fpreal64 getScale() const
UT_StringHolder opUpVectorAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void saveBinary(std::ostream &os) const
Save string to binary stream.
RollPer getRollPer() const
UT_StringHolder opPitchAttrib(const SOP_NodeVerb::CookParms &cookparms) const
bool getApplyPitch() const
bool opNormalize(const SOP_NodeVerb::CookParms &cookparms) const
GT_API const UT_StringHolder version
SYS_FORCE_INLINE UT_StringHolder getToken(TangentType enum_value)
UT_StringHolder opZAxisName(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opQuaternionName(const SOP_NodeVerb::CookParms &cookparms) const
PitchPer opPitchPer(const SOP_NodeVerb::CookParms &cookparms) const
void setTangentType(TangentType val)
fpreal64 getIncPitch() const
fpreal64 getPitch() const
fpreal64 getMaxStretchAroundTurns() const
void setScale(fpreal64 val)
fpreal64 getCurvatureScale() const
void setRollAttrib(const UT_StringHolder &val)
bool opTransformByAttribs(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Vector2D v)
exint getNestNumParms(TempIndex idx) const override
const UT_StringHolder & getPitchAttrib() const
const UT_StringHolder & getXAxisName() const
YawPer opYawPer(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Matrix4D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
DEP_MicroNode * depnode() const
LeafData & operator=(const LeafData &)=delete
void setOutputZAxis(bool val)
Utility class for containing a color ramp.
bool getNormalize() const
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
bool getOutputTransform4() const
UT_StringHolder opXAxisName(const SOP_NodeVerb::CookParms &cookparms) const
void setUseEndUpVector(bool val)
bool opOutputXAxis(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & w() noexcept
void setTransformByAttribs(bool val)
const UT_StringHolder & getCurvatureScaleAttrib() const
virtual UT_StringHolder baseGetSignature() const
UT_StringHolder opTranslationName(const SOP_NodeVerb::CookParms &cookparms) const
ROrd opROrd(const SOP_NodeVerb::CookParms &cookparms) const
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.
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
bool getOutputTranslation() const
fpreal getCookTime() const
bool opOutputYAxis(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_StringHolder &v)
static void loadData(UT_IStream &is, UT_Vector2D &v)
const UT_StringHolder & getCurvatureAttrib() const
static void saveData(std::ostream &os, UT_Matrix3D v)
int64 opFullTwists(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, int64 v)
const char * findChar(int c) const
int64 getFullTwists() const
bool operator!=(const SOP_CurveFrameParms &src) const
UT_StringHolder opYAxisName(const SOP_NodeVerb::CookParms &cookparms) const
void setAdjustUpCurvature(bool val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
const UT_StringHolder & getEndUpVectorAttrib() const
void copyFrom(const OP_NodeParms *src) override
bool opContinuousClosed(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & y() noexcept
bool getAdjustUpCurvature() const
void setApplyPitch(bool val)
static void loadData(UT_IStream &is, int64 &v)
void setEnableCurvatureAttrib(bool val)
bool getStretchAroundTurns() const
static void loadData(UT_IStream &is, UT_Vector3D &v)
void setRollPer(RollPer val)
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
bool opEnableCurvatureAttrib(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opYawAttrib(const SOP_NodeVerb::CookParms &cookparms) const
bool opApplyPitch(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opCurveGroup(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opMaxStretchAroundTurns(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opScale(const SOP_NodeVerb::CookParms &cookparms) const
void loadFromOpSubclass(const LoadParms &loadparms) override
bool getApplyRoll() const
bool opOutputZAxis(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & y() noexcept
SYS_FORCE_INLINE bool isstring() const
void setQuaternionName(const UT_StringHolder &val)
void setFullTwists(int64 val)
fpreal64 opPitch(const SOP_NodeVerb::CookParms &cookparms) const
void setYaw(fpreal64 val)
void setNormalize(bool val)
void setPitch(fpreal64 val)
void setYAxisName(const UT_StringHolder &val)
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
const UT_StringHolder & getTransform3Name() const
bool getExtrapolateEndTangents() const
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
void setIncRoll(fpreal64 val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
void setMaxStretchAroundTurns(fpreal64 val)
constexpr SYS_FORCE_INLINE T & x() noexcept
fpreal64 opIncRoll(const SOP_NodeVerb::CookParms &cookparms) const