23 namespace SOP_Measure_2_0Enums
34 using namespace UT::Literal;
58 using namespace UT::Literal;
84 using namespace UT::Literal;
103 using namespace UT::Literal;
104 switch (enum_value) {
120 using namespace UT::Literal;
121 switch (enum_value) {
138 using namespace UT::Literal;
139 switch (enum_value) {
157 using namespace UT::Literal;
158 switch (enum_value) {
177 using namespace UT::Literal;
178 switch (enum_value) {
197 using namespace UT::Literal;
198 switch (enum_value) {
216 using namespace UT::Literal;
217 switch (enum_value) {
235 using namespace UT::Literal;
236 switch (enum_value) {
260 myPrincipalReportAs = 0;
262 myIntegrationMode = 0;
263 mySrcAttrib =
"P"_UTsh;
265 myScaleNormalize =
true;
266 myIntegrationDomain = 0;
267 myRefineToManifold =
true;
268 myPieceAttrib =
"class"_UTsh;
269 myUseCustomPos =
false;
270 myPosAttrib =
"P"_UTsh;
271 myUseRangeMin =
false;
273 myUseRangeMax =
false;
275 myUseCenterWidth =
true;
280 myColorramp =
UT_Ramp::buildFromDefault(
"1pos ( 0 ) 1c ( 0 0 1 ) 1interp ( linear ) 2pos ( 0.5 ) 2c ( 1 1 1 ) 2interp ( linear ) 3pos ( 1.0 ) 3c ( 1 0 0 ) 3interp ( linear )");
282 myAttribName =
"area"_UTsh;
283 myUseTotalAttrib =
false;
284 myTotalAttribName =
"totalarea"_UTsh;
285 myUseRangeGroup =
false;
286 myRangeGroup =
"inrange"_UTsh;
287 myBakeIntoOutput =
false;
288 myUseRemapRange =
false;
290 myDivideElementArea =
false;
303 if (myGroup != src.myGroup)
return false;
304 if (myGroupType != src.myGroupType)
return false;
305 if (myMeasure != src.myMeasure)
return false;
306 if (myCurvatureType != src.myCurvatureType)
return false;
307 if (myPrincipalType != src.myPrincipalType)
return false;
308 if (myPrincipalSign != src.myPrincipalSign)
return false;
309 if (myPrincipalReportAs != src.myPrincipalReportAs)
return false;
310 if (myUmbilicCutoff != src.myUmbilicCutoff)
return false;
311 if (myIntegrationMode != src.myIntegrationMode)
return false;
312 if (mySrcAttrib != src.mySrcAttrib)
return false;
313 if (mySrcComp != src.mySrcComp)
return false;
314 if (myScaleNormalize != src.myScaleNormalize)
return false;
315 if (myIntegrationDomain != src.myIntegrationDomain)
return false;
316 if (myRefineToManifold != src.myRefineToManifold)
return false;
317 if (myPieceAttrib != src.myPieceAttrib)
return false;
318 if (myUseCustomPos != src.myUseCustomPos)
return false;
319 if (myPosAttrib != src.myPosAttrib)
return false;
320 if (myUseRangeMin != src.myUseRangeMin)
return false;
321 if (myRangeMin != src.myRangeMin)
return false;
322 if (myUseRangeMax != src.myUseRangeMax)
return false;
323 if (myRangeMax != src.myRangeMax)
return false;
324 if (myUseCenterWidth != src.myUseCenterWidth)
return false;
325 if (myWidth != src.myWidth)
return false;
326 if (myWidthScale != src.myWidthScale)
return false;
327 if (myCenterType != src.myCenterType)
return false;
328 if (myFixedCenter != src.myFixedCenter)
return false;
329 if (myColorramp != src.myColorramp)
330 {
if (!myColorramp || !src.myColorramp || !(*myColorramp == *src.myColorramp))
return false; }
331 if (myVectorScale != src.myVectorScale)
return false;
332 if (myAttribName != src.myAttribName)
return false;
333 if (myUseTotalAttrib != src.myUseTotalAttrib)
return false;
334 if (myTotalAttribName != src.myTotalAttribName)
return false;
335 if (myUseRangeGroup != src.myUseRangeGroup)
return false;
336 if (myRangeGroup != src.myRangeGroup)
return false;
337 if (myBakeIntoOutput != src.myBakeIntoOutput)
return false;
338 if (myUseRemapRange != src.myUseRemapRange)
return false;
339 if (myRemapRange != src.myRemapRange)
return false;
340 if (myDivideElementArea != src.myDivideElementArea)
return false;
369 graph->
evalOpParm(myGroup, nodeidx,
"group", time, graph->
isDirect()?
nullptr:depnode);
372 graph->
evalOpParm(myGroupType, nodeidx,
"grouptype", time, graph->
isDirect()?
nullptr:depnode);
375 graph->
evalOpParm(myMeasure, nodeidx,
"measure", time, graph->
isDirect()?
nullptr:depnode);
377 if (
true && ( (
true&&!(((
int64(getMeasure())!=4)))) ) )
378 graph->
evalOpParm(myCurvatureType, nodeidx,
"curvaturetype", time, graph->
isDirect()?
nullptr:depnode);
380 if (
true && ( (
true&&!(((
int64(getMeasure())!=4))||((
int64(getCurvatureType())!=2)))) ) )
381 graph->
evalOpParm(myPrincipalType, nodeidx,
"principaltype", time, graph->
isDirect()?
nullptr:depnode);
383 if (
true && ( (
true&&!(((
int64(getMeasure())!=4))||((
int64(getCurvatureType())!=2)))) ) )
384 graph->
evalOpParm(myPrincipalSign, nodeidx,
"principalsign", time, graph->
isDirect()?
nullptr:depnode);
385 myPrincipalReportAs = 0;
386 if (
true && ( (
true&&!(((
int64(getMeasure())!=4))||((
int64(getCurvatureType())!=2)))) ) )
387 graph->
evalOpParm(myPrincipalReportAs, nodeidx,
"principalreportas", time, graph->
isDirect()?
nullptr:depnode);
389 if (
true && ( (
true&&!(((
int64(getMeasure())!=4))||((
int64(getCurvatureType())!=2))||((
int64(getPrincipalReportAs())==0)))) ) )
390 graph->
evalOpParm(myUmbilicCutoff, nodeidx,
"umbiliccutoff", time, graph->
isDirect()?
nullptr:depnode);
391 myIntegrationMode = 0;
392 if (
true && ( (
true&&!(((
int64(getMeasure())!=7)&&(
int64(getMeasure())!=8)))) ) )
393 graph->
evalOpParm(myIntegrationMode, nodeidx,
"integrationmode", time, graph->
isDirect()?
nullptr:depnode);
394 mySrcAttrib =
"P"_UTsh;
395 if (
true && ( (
true&&!(((
int64(getMeasure())==4))||((
int64(getMeasure())==2))||((
int64(getMeasure())==0))||((
int64(getMeasure())==1))||((
int64(getMeasure())==3)))) ) )
396 graph->
evalOpParm(mySrcAttrib, nodeidx,
"srcattrib", time, graph->
isDirect()?
nullptr:depnode);
398 if (
true && ( (
true&&!(((
int64(getMeasure())==4))||((
int64(getMeasure())==2))||((
int64(getMeasure())==0))||((
int64(getMeasure())==1))||((
int64(getMeasure())==3)))) ) )
399 graph->
evalOpParm(mySrcComp, nodeidx,
"srccomp", time, graph->
isDirect()?
nullptr:depnode);
400 myScaleNormalize =
true;
401 if (
true && ( (
true&&!(((
int64(getMeasure())!=4)&&(
int64(getMeasure())!=5)&&(
int64(getMeasure())!=6)&&(
int64(getMeasure())!=8))||((
int64(getMeasure())==4)&&(
int64(getCurvatureType())==0)))) ) )
402 graph->
evalOpParm(myScaleNormalize, nodeidx,
"scalenormalize", time, graph->
isDirect()?
nullptr:depnode);
403 myIntegrationDomain = 0;
405 graph->
evalOpParm(myIntegrationDomain, nodeidx,
"integrationdomain", time, graph->
isDirect()?
nullptr:depnode);
406 myRefineToManifold =
true;
407 if (
true && ( (
true&&!(((
int64(getIntegrationDomain())!=1)))) ) )
408 graph->
evalOpParm(myRefineToManifold, nodeidx,
"refinetomanifold", time, graph->
isDirect()?
nullptr:depnode);
409 myPieceAttrib =
"class"_UTsh;
410 if (
true && ( (
true&&!(((
int64(getIntegrationDomain())!=1)))) ) )
411 graph->
evalOpParm(myPieceAttrib, nodeidx,
"pieceattrib", time, graph->
isDirect()?
nullptr:depnode);
412 myUseCustomPos =
false;
414 graph->
evalOpParm(myUseCustomPos, nodeidx,
"usecustompos", time, graph->
isDirect()?
nullptr:depnode);
415 myPosAttrib =
"P"_UTsh;
416 if (
true && ( (
true&&!(((getUseCustomPos()==0)))) ) )
417 graph->
evalOpParm(myPosAttrib, nodeidx,
"posattrib", time, graph->
isDirect()?
nullptr:depnode);
418 myUseRangeMin =
false;
419 if (
true && ( (
true&&!(((
int64(getMeasure())==3))||((
int64(getMeasure())==4)&&(
int64(getPrincipalReportAs())==1)))) ) )
420 graph->
evalOpParm(myUseRangeMin, nodeidx,
"userangemin", time, graph->
isDirect()?
nullptr:depnode);
422 if (
true && ( (
true&&!(((
int64(getMeasure())==3))||((
int64(getMeasure())==4)&&(
int64(getPrincipalReportAs())==1))||((getUseRangeMin()==0)))) ) )
423 graph->
evalOpParm(myRangeMin, nodeidx,
"rangemin", time, graph->
isDirect()?
nullptr:depnode);
424 myUseRangeMax =
false;
425 if (
true && ( (
true&&!(((
int64(getMeasure())==3))||((
int64(getMeasure())==4)&&(
int64(getPrincipalReportAs())==1)))) ) )
426 graph->
evalOpParm(myUseRangeMax, nodeidx,
"userangemax", time, graph->
isDirect()?
nullptr:depnode);
428 if (
true && ( (
true&&!(((
int64(getMeasure())==3))||((
int64(getMeasure())==4)&&(
int64(getPrincipalReportAs())==1))||((getUseRangeMax()==0)))) ) )
429 graph->
evalOpParm(myRangeMax, nodeidx,
"rangemax", time, graph->
isDirect()?
nullptr:depnode);
430 myUseCenterWidth =
true;
431 if (
true && ( (
true&&!(((
int64(getMeasure())==3))||((
int64(getMeasure())==4)&&(
int64(getPrincipalReportAs())==1)))) ) )
432 graph->
evalOpParm(myUseCenterWidth, nodeidx,
"usecenterwidth", time, graph->
isDirect()?
nullptr:depnode);
434 if (
true && ( (
true&&!(((
int64(getMeasure())==3))||((
int64(getMeasure())==4)&&(
int64(getPrincipalReportAs())==1))||((getUseCenterWidth()==0)))) ) )
435 graph->
evalOpParm(myWidth, nodeidx,
"width", time, graph->
isDirect()?
nullptr:depnode);
437 if (
true && ( (
true&&!(((
int64(getMeasure())==3))||((
int64(getMeasure())==4)&&(
int64(getPrincipalReportAs())==1))||((getUseCenterWidth()==0)))) ) )
438 graph->
evalOpParm(myWidthScale, nodeidx,
"widthscale", time, graph->
isDirect()?
nullptr:depnode);
440 if (
true && ( (
true&&!(((
int64(getMeasure())==3))||((
int64(getMeasure())==4)&&(
int64(getPrincipalReportAs())==1))||((getUseCenterWidth()==0)))) ) )
441 graph->
evalOpParm(myCenterType, nodeidx,
"centertype", time, graph->
isDirect()?
nullptr:depnode);
443 if (
true && ( (
true&&!(((
int64(getCenterType())!=0))||((
int64(getMeasure())==3))||((
int64(getMeasure())==4)&&(
int64(getPrincipalReportAs())==1))||((getUseCenterWidth()==0)))) ) )
444 graph->
evalOpParm(myFixedCenter, nodeidx,
"fixedcenter", time, graph->
isDirect()?
nullptr:depnode);
445 myColorramp =
UT_Ramp::buildFromDefault(
"1pos ( 0 ) 1c ( 0 0 1 ) 1interp ( linear ) 2pos ( 0.5 ) 2c ( 1 1 1 ) 2interp ( linear ) 3pos ( 1.0 ) 3c ( 1 0 0 ) 3interp ( linear )");
446 if (
true && ( (
true&&!(((
int64(getMeasure())==3))||((
int64(getMeasure())==4)&&(
int64(getPrincipalReportAs())==1)))) ) )
447 graph->
evalOpParm(myColorramp, nodeidx,
"colorramp", time, graph->
isDirect()?
nullptr:depnode);
449 if (
true && ( (
true&&!(((
int64(getMeasure())==4)&&(
int64(getPrincipalReportAs())==0))||((
int64(getMeasure())==2))||((
int64(getMeasure())==0))||((
int64(getMeasure())==1))||((
int64(getMeasure())==3))||((
int64(getMeasure())==6)&&(
int64(getSrcComp())!=3))||((
int64(getMeasure())==8)&&(
int64(getSrcComp())!=3))||((
int64(getMeasure())==7)&&(
int64(getSrcComp())!=3)))) ) )
450 graph->
evalOpParm(myVectorScale, nodeidx,
"vectorscale", time, graph->
isDirect()?
nullptr:depnode);
451 myAttribName =
"area"_UTsh;
453 graph->
evalOpParm(myAttribName, nodeidx,
"attribname", time, graph->
isDirect()?
nullptr:depnode);
454 myUseTotalAttrib =
false;
456 graph->
evalOpParm(myUseTotalAttrib, nodeidx,
"usetotalattrib", time, graph->
isDirect()?
nullptr:depnode);
457 myTotalAttribName =
"totalarea"_UTsh;
458 if (
true && ( (
true&&!(((getUseTotalAttrib()==0)))) ) )
459 graph->
evalOpParm(myTotalAttribName, nodeidx,
"totalattribname", time, graph->
isDirect()?
nullptr:depnode);
460 myUseRangeGroup =
false;
461 if (
true && ( (
true&&!(((
int64(getMeasure())==3))||((
int64(getMeasure())==4)&&(
int64(getPrincipalReportAs())==1))||((getUseRangeMin()==0)&&(getUseRangeMax()==0)&&(getUseCenterWidth()==0)))) ) )
462 graph->
evalOpParm(myUseRangeGroup, nodeidx,
"userangegroup", time, graph->
isDirect()?
nullptr:depnode);
463 myRangeGroup =
"inrange"_UTsh;
464 if (
true && ( (
true&&!(((getUseRangeGroup()==0)))) ) )
465 graph->
evalOpParm(myRangeGroup, nodeidx,
"rangegroup", time, graph->
isDirect()?
nullptr:depnode);
466 myBakeIntoOutput =
false;
467 if (
true && ( (
true&&!(((
int64(getMeasure())==3))||((
int64(getMeasure())==4)&&(
int64(getPrincipalReportAs())==1))||((getUseRangeMin()==0)&&(getUseRangeMax()==0)&&(getUseCenterWidth()==0)))) ) )
468 graph->
evalOpParm(myBakeIntoOutput, nodeidx,
"bakeintooutput", time, graph->
isDirect()?
nullptr:depnode);
469 myUseRemapRange =
false;
470 if (
true && ( (
true&&!(((getBakeIntoOutput()==0)))) ) )
471 graph->
evalOpParm(myUseRemapRange, nodeidx,
"useremaprange", time, graph->
isDirect()?
nullptr:depnode);
473 if (
true && ( (
true&&!(((getBakeIntoOutput()==0))||((getUseRemapRange()==0)))) ) )
474 graph->
evalOpParm(myRemapRange, nodeidx,
"remaprange", time, graph->
isDirect()?
nullptr:depnode);
475 myDivideElementArea =
false;
476 if (
true && ( (
true&&!(((
int64(getMeasure())!=4))||((
int64(getIntegrationDomain())!=0)))) ) )
477 graph->
evalOpParm(myDivideElementArea, nodeidx,
"divideelementarea", time, graph->
isDirect()?
nullptr:depnode);
493 template <
typename T>
500 if (idx.
size() != instance.
size()+1)
505 coerceValue(value, myGroup);
508 coerceValue(value, myGroupType);
511 coerceValue(value, myMeasure);
514 coerceValue(value, myCurvatureType);
517 coerceValue(value, myPrincipalType);
520 coerceValue(value, myPrincipalSign);
523 coerceValue(value, myPrincipalReportAs);
526 coerceValue(value, myUmbilicCutoff);
529 coerceValue(value, myIntegrationMode);
532 coerceValue(value, mySrcAttrib);
535 coerceValue(value, mySrcComp);
538 coerceValue(value, myScaleNormalize);
541 coerceValue(value, myIntegrationDomain);
544 coerceValue(value, myRefineToManifold);
547 coerceValue(value, myPieceAttrib);
550 coerceValue(value, myUseCustomPos);
553 coerceValue(value, myPosAttrib);
556 coerceValue(value, myUseRangeMin);
559 coerceValue(value, myRangeMin);
562 coerceValue(value, myUseRangeMax);
565 coerceValue(value, myRangeMax);
568 coerceValue(value, myUseCenterWidth);
571 coerceValue(value, myWidth);
574 coerceValue(value, myWidthScale);
577 coerceValue(value, myCenterType);
580 coerceValue(value, myFixedCenter);
583 coerceValue(value, myColorramp);
586 coerceValue(value, myVectorScale);
589 coerceValue(value, myAttribName);
592 coerceValue(value, myUseTotalAttrib);
595 coerceValue(value, myTotalAttribName);
598 coerceValue(value, myUseRangeGroup);
601 coerceValue(value, myRangeGroup);
604 coerceValue(value, myBakeIntoOutput);
607 coerceValue(value, myUseRemapRange);
610 coerceValue(value, myRemapRange);
613 coerceValue(value, myDivideElementArea);
630 { doGetParmValue(idx, instance, value); }
632 { doGetParmValue(idx, instance, value); }
634 { doGetParmValue(idx, instance, value); }
636 { doGetParmValue(idx, instance, value); }
638 { doGetParmValue(idx, instance, value); }
640 { doGetParmValue(idx, instance, value); }
642 { doGetParmValue(idx, instance, value); }
644 { doGetParmValue(idx, instance, value); }
646 { doGetParmValue(idx, instance, value); }
648 { doGetParmValue(idx, instance, value); }
650 { doGetParmValue(idx, instance, value); }
652 template <
typename T>
659 if (idx.
size() != instance.
size()+1)
664 coerceValue(myGroup, ( ( value ) ));
667 coerceValue(myGroupType, clampMinValue(0, clampMaxValue(1, value ) ));
670 coerceValue(myMeasure, clampMinValue(0, clampMaxValue(8, value ) ));
673 coerceValue(myCurvatureType, clampMinValue(0, clampMaxValue(3, value ) ));
676 coerceValue(myPrincipalType, clampMinValue(0, clampMaxValue(1, value ) ));
679 coerceValue(myPrincipalSign, clampMinValue(0, clampMaxValue(1, value ) ));
682 coerceValue(myPrincipalReportAs, clampMinValue(0, clampMaxValue(2, value ) ));
685 coerceValue(myUmbilicCutoff, clampMinValue(0, clampMaxValue(1, value ) ));
688 coerceValue(myIntegrationMode, clampMinValue(0, clampMaxValue(2, value ) ));
691 coerceValue(mySrcAttrib, ( ( value ) ));
694 coerceValue(mySrcComp, clampMinValue(0, clampMaxValue(3, value ) ));
697 coerceValue(myScaleNormalize, ( ( value ) ));
700 coerceValue(myIntegrationDomain, clampMinValue(0, clampMaxValue(2, value ) ));
703 coerceValue(myRefineToManifold, ( ( value ) ));
706 coerceValue(myPieceAttrib, ( ( value ) ));
709 coerceValue(myUseCustomPos, ( ( value ) ));
712 coerceValue(myPosAttrib, ( ( value ) ));
715 coerceValue(myUseRangeMin, ( ( value ) ));
718 coerceValue(myRangeMin, ( ( value ) ));
721 coerceValue(myUseRangeMax, ( ( value ) ));
724 coerceValue(myRangeMax, ( ( value ) ));
727 coerceValue(myUseCenterWidth, ( ( value ) ));
730 coerceValue(myWidth, clampMinValue(0, ( value ) ));
733 coerceValue(myWidthScale, clampMinValue(0, clampMaxValue(2, value ) ));
736 coerceValue(myCenterType, clampMinValue(0, clampMaxValue(2, value ) ));
739 coerceValue(myFixedCenter, ( ( value ) ));
742 coerceValue(myColorramp, clampMinValue(2, ( value ) ));
745 coerceValue(myVectorScale, clampMinValue(0, ( value ) ));
748 coerceValue(myAttribName, ( ( value ) ));
751 coerceValue(myUseTotalAttrib, ( ( value ) ));
754 coerceValue(myTotalAttribName, ( ( value ) ));
757 coerceValue(myUseRangeGroup, ( ( value ) ));
760 coerceValue(myRangeGroup, ( ( value ) ));
763 coerceValue(myBakeIntoOutput, ( ( value ) ));
766 coerceValue(myUseRemapRange, ( ( value ) ));
769 coerceValue(myRemapRange, ( ( value ) ));
772 coerceValue(myDivideElementArea, ( ( value ) ));
779 { doSetParmValue(idx, instance, value); }
781 { doSetParmValue(idx, instance, value); }
783 { doSetParmValue(idx, instance, value); }
785 { doSetParmValue(idx, instance, value); }
787 { doSetParmValue(idx, instance, value); }
789 { doSetParmValue(idx, instance, value); }
791 { doSetParmValue(idx, instance, value); }
793 { doSetParmValue(idx, instance, value); }
795 { doSetParmValue(idx, instance, value); }
797 { doSetParmValue(idx, instance, value); }
799 { doSetParmValue(idx, instance, value); }
815 if (fieldnum.
size() < 1)
826 return "curvaturetype";
828 return "principaltype";
830 return "principalsign";
832 return "principalreportas";
834 return "umbiliccutoff";
836 return "integrationmode";
842 return "scalenormalize";
844 return "integrationdomain";
846 return "refinetomanifold";
848 return "pieceattrib";
850 return "usecustompos";
854 return "userangemin";
858 return "userangemax";
862 return "usecenterwidth";
870 return "fixedcenter";
874 return "vectorscale";
878 return "usetotalattrib";
880 return "totalattribname";
882 return "userangegroup";
886 return "bakeintooutput";
888 return "useremaprange";
892 return "divideelementarea";
900 if (fieldnum.
size() < 1)
901 return PARM_UNSUPPORTED;
980 return PARM_UNSUPPORTED;
1016 loadData(is, rampdata);
1034 int typelen = colon - data.
buffer();
1046 { UTwrite(os, &v); }
1048 {
int64 iv =
v; UTwrite(os, &iv); }
1050 { UTwrite<fpreal64>(os, &
v); }
1052 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
1054 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1055 UTwrite<fpreal64>(os, &v.
z()); }
1057 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1058 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
1070 if (s) s->save(ostr);
1071 result = ostr.
str();
1072 saveData(os, result);
1079 ostr << s->getDataTypeToken();
1081 s->saveBinary(ostr);
1083 result = ostr.
str();
1084 saveData(os, result);
1092 saveData(os, myGroup);
1093 saveData(os, myGroupType);
1094 saveData(os, myMeasure);
1095 saveData(os, myCurvatureType);
1096 saveData(os, myPrincipalType);
1097 saveData(os, myPrincipalSign);
1098 saveData(os, myPrincipalReportAs);
1099 saveData(os, myUmbilicCutoff);
1100 saveData(os, myIntegrationMode);
1101 saveData(os, mySrcAttrib);
1102 saveData(os, mySrcComp);
1103 saveData(os, myScaleNormalize);
1104 saveData(os, myIntegrationDomain);
1105 saveData(os, myRefineToManifold);
1106 saveData(os, myPieceAttrib);
1107 saveData(os, myUseCustomPos);
1108 saveData(os, myPosAttrib);
1109 saveData(os, myUseRangeMin);
1110 saveData(os, myRangeMin);
1111 saveData(os, myUseRangeMax);
1112 saveData(os, myRangeMax);
1113 saveData(os, myUseCenterWidth);
1114 saveData(os, myWidth);
1115 saveData(os, myWidthScale);
1116 saveData(os, myCenterType);
1117 saveData(os, myFixedCenter);
1118 saveData(os, myColorramp);
1119 saveData(os, myVectorScale);
1120 saveData(os, myAttribName);
1121 saveData(os, myUseTotalAttrib);
1122 saveData(os, myTotalAttribName);
1123 saveData(os, myUseRangeGroup);
1124 saveData(os, myRangeGroup);
1125 saveData(os, myBakeIntoOutput);
1126 saveData(os, myUseRemapRange);
1127 saveData(os, myRemapRange);
1128 saveData(os, myDivideElementArea);
1141 loadData(is, myGroup);
1142 loadData(is, myGroupType);
1143 loadData(is, myMeasure);
1144 loadData(is, myCurvatureType);
1145 loadData(is, myPrincipalType);
1146 loadData(is, myPrincipalSign);
1147 loadData(is, myPrincipalReportAs);
1148 loadData(is, myUmbilicCutoff);
1149 loadData(is, myIntegrationMode);
1150 loadData(is, mySrcAttrib);
1151 loadData(is, mySrcComp);
1152 loadData(is, myScaleNormalize);
1153 loadData(is, myIntegrationDomain);
1154 loadData(is, myRefineToManifold);
1155 loadData(is, myPieceAttrib);
1156 loadData(is, myUseCustomPos);
1157 loadData(is, myPosAttrib);
1158 loadData(is, myUseRangeMin);
1159 loadData(is, myRangeMin);
1160 loadData(is, myUseRangeMax);
1161 loadData(is, myRangeMax);
1162 loadData(is, myUseCenterWidth);
1163 loadData(is, myWidth);
1164 loadData(is, myWidthScale);
1165 loadData(is, myCenterType);
1166 loadData(is, myFixedCenter);
1167 loadData(is, myColorramp);
1168 loadData(is, myVectorScale);
1169 loadData(is, myAttribName);
1170 loadData(is, myUseTotalAttrib);
1171 loadData(is, myTotalAttribName);
1172 loadData(is, myUseRangeGroup);
1173 loadData(is, myRangeGroup);
1174 loadData(is, myBakeIntoOutput);
1175 loadData(is, myUseRemapRange);
1176 loadData(is, myRemapRange);
1177 loadData(is, myDivideElementArea);
1187 if (!thissop)
return getGroup();
1189 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
1197 if (!thissop)
return getGroupType();
1199 OP_Utils::evalOpParm(result, thissop,
"grouptype", cookparms.
getCookTime(), 0);
1207 if (!thissop)
return getMeasure();
1209 OP_Utils::evalOpParm(result, thissop,
"measure", cookparms.
getCookTime(), 0);
1217 if (!thissop)
return getCurvatureType();
1219 OP_Utils::evalOpParm(result, thissop,
"curvaturetype", cookparms.
getCookTime(), 0);
1227 if (!thissop)
return getPrincipalType();
1229 OP_Utils::evalOpParm(result, thissop,
"principaltype", cookparms.
getCookTime(), 0);
1237 if (!thissop)
return getPrincipalSign();
1239 OP_Utils::evalOpParm(result, thissop,
"principalsign", cookparms.
getCookTime(), 0);
1247 if (!thissop)
return getPrincipalReportAs();
1249 OP_Utils::evalOpParm(result, thissop,
"principalreportas", cookparms.
getCookTime(), 0);
1257 if (!thissop)
return getUmbilicCutoff();
1259 OP_Utils::evalOpParm(result, thissop,
"umbiliccutoff", cookparms.
getCookTime(), 0);
1267 if (!thissop)
return getIntegrationMode();
1269 OP_Utils::evalOpParm(result, thissop,
"integrationmode", cookparms.
getCookTime(), 0);
1277 if (!thissop)
return getSrcAttrib();
1279 OP_Utils::evalOpParm(result, thissop,
"srcattrib", cookparms.
getCookTime(), 0);
1287 if (!thissop)
return getSrcComp();
1289 OP_Utils::evalOpParm(result, thissop,
"srccomp", cookparms.
getCookTime(), 0);
1297 if (!thissop)
return getScaleNormalize();
1299 OP_Utils::evalOpParm(result, thissop,
"scalenormalize", cookparms.
getCookTime(), 0);
1307 if (!thissop)
return getIntegrationDomain();
1309 OP_Utils::evalOpParm(result, thissop,
"integrationdomain", cookparms.
getCookTime(), 0);
1317 if (!thissop)
return getRefineToManifold();
1319 OP_Utils::evalOpParm(result, thissop,
"refinetomanifold", cookparms.
getCookTime(), 0);
1327 if (!thissop)
return getPieceAttrib();
1329 OP_Utils::evalOpParm(result, thissop,
"pieceattrib", cookparms.
getCookTime(), 0);
1337 if (!thissop)
return getUseCustomPos();
1339 OP_Utils::evalOpParm(result, thissop,
"usecustompos", cookparms.
getCookTime(), 0);
1347 if (!thissop)
return getPosAttrib();
1349 OP_Utils::evalOpParm(result, thissop,
"posattrib", cookparms.
getCookTime(), 0);
1357 if (!thissop)
return getUseRangeMin();
1359 OP_Utils::evalOpParm(result, thissop,
"userangemin", cookparms.
getCookTime(), 0);
1367 if (!thissop)
return getRangeMin();
1369 OP_Utils::evalOpParm(result, thissop,
"rangemin", cookparms.
getCookTime(), 0);
1377 if (!thissop)
return getUseRangeMax();
1379 OP_Utils::evalOpParm(result, thissop,
"userangemax", cookparms.
getCookTime(), 0);
1387 if (!thissop)
return getRangeMax();
1389 OP_Utils::evalOpParm(result, thissop,
"rangemax", cookparms.
getCookTime(), 0);
1397 if (!thissop)
return getUseCenterWidth();
1399 OP_Utils::evalOpParm(result, thissop,
"usecenterwidth", cookparms.
getCookTime(), 0);
1407 if (!thissop)
return getWidth();
1409 OP_Utils::evalOpParm(result, thissop,
"width", cookparms.
getCookTime(), 0);
1417 if (!thissop)
return getWidthScale();
1419 OP_Utils::evalOpParm(result, thissop,
"widthscale", cookparms.
getCookTime(), 0);
1427 if (!thissop)
return getCenterType();
1429 OP_Utils::evalOpParm(result, thissop,
"centertype", cookparms.
getCookTime(), 0);
1437 if (!thissop)
return getFixedCenter();
1439 OP_Utils::evalOpParm(result, thissop,
"fixedcenter", cookparms.
getCookTime(), 0);
1447 if (!thissop)
return getColorramp();
1449 OP_Utils::evalOpParm(result, thissop,
"colorramp", cookparms.
getCookTime(), 0);
1457 if (!thissop)
return getVectorScale();
1459 OP_Utils::evalOpParm(result, thissop,
"vectorscale", cookparms.
getCookTime(), 0);
1467 if (!thissop)
return getAttribName();
1469 OP_Utils::evalOpParm(result, thissop,
"attribname", cookparms.
getCookTime(), 0);
1477 if (!thissop)
return getUseTotalAttrib();
1479 OP_Utils::evalOpParm(result, thissop,
"usetotalattrib", cookparms.
getCookTime(), 0);
1487 if (!thissop)
return getTotalAttribName();
1489 OP_Utils::evalOpParm(result, thissop,
"totalattribname", cookparms.
getCookTime(), 0);
1497 if (!thissop)
return getUseRangeGroup();
1499 OP_Utils::evalOpParm(result, thissop,
"userangegroup", cookparms.
getCookTime(), 0);
1507 if (!thissop)
return getRangeGroup();
1509 OP_Utils::evalOpParm(result, thissop,
"rangegroup", cookparms.
getCookTime(), 0);
1517 if (!thissop)
return getBakeIntoOutput();
1519 OP_Utils::evalOpParm(result, thissop,
"bakeintooutput", cookparms.
getCookTime(), 0);
1527 if (!thissop)
return getUseRemapRange();
1529 OP_Utils::evalOpParm(result, thissop,
"useremaprange", cookparms.
getCookTime(), 0);
1537 if (!thissop)
return getRemapRange();
1539 OP_Utils::evalOpParm(result, thissop,
"remaprange", cookparms.
getCookTime(), 0);
1547 if (!thissop)
return getDivideElementArea();
1549 OP_Utils::evalOpParm(result, thissop,
"divideelementarea", cookparms.
getCookTime(), 0);
1557 int64 myCurvatureType;
1558 int64 myPrincipalType;
1559 int64 myPrincipalSign;
1560 int64 myPrincipalReportAs;
1562 int64 myIntegrationMode;
1565 bool myScaleNormalize;
1566 int64 myIntegrationDomain;
1567 bool myRefineToManifold;
1569 bool myUseCustomPos;
1575 bool myUseCenterWidth;
1583 bool myUseTotalAttrib;
1585 bool myUseRangeGroup;
1587 bool myBakeIntoOutput;
1588 bool myUseRemapRange;
1590 bool myDivideElementArea;
Measure getMeasure() const
const UT_StringHolder & getPieceAttrib() const
Measure opMeasure(const SOP_NodeVerb::CookParms &cookparms) const
CenterType opCenterType(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, bool v)
bool opUseRangeGroup(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getAttribName() const
static void loadData(UT_IStream &is, UT_Matrix4D &v)
UT_StringHolder opPieceAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
bool getUseRangeMin() const
static void loadData(UT_IStream &is, UT_Vector3D &v)
bool getUseCenterWidth() const
PrincipalType getPrincipalType() const
SrcComp opSrcComp(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
bool getBakeIntoOutput() const
SOP_Node * getNode() const
void setWidth(fpreal64 val)
static void loadData(UT_IStream &is, bool &v)
fpreal64 opWidth(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
static UT_SharedPtr< UT_Ramp > buildFromDefault(const char *def)
Returns a ramp constructed from the canonical default strings.
bool getUseTotalAttrib() const
void setPrincipalReportAs(PrincipalReportAs val)
static void loadData(UT_IStream &is, UT_Vector2D &v)
void setRangeMax(fpreal64 val)
bool opRefineToManifold(const SOP_NodeVerb::CookParms &cookparms) const
bool opBakeIntoOutput(const SOP_NodeVerb::CookParms &cookparms) const
UT_SharedPtr< UT_Ramp > getColorramp() const
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
bool getRefineToManifold() const
CurvatureType getCurvatureType() const
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
bool opUseRangeMin(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Matrix2D v)
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
UT_Vector2T< fpreal64 > UT_Vector2D
WidthScale opWidthScale(const SOP_NodeVerb::CookParms &cookparms) const
void setDivideElementArea(bool val)
IntegrationMode opIntegrationMode(const SOP_NodeVerb::CookParms &cookparms) const
GLsizei const GLfloat * value
bool getDivideElementArea() const
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
const UT_StringHolder & getTotalAttribName() const
static void loadData(UT_IStream &is, UT_Matrix3D &v)
void setUseTotalAttrib(bool val)
bool getUseRemapRange() const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
const OP_Context & context() const
void setIntegrationMode(IntegrationMode val)
exint getNestNumParms(TempIndex idx) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
constexpr SYS_FORCE_INLINE T & z() noexcept
SYS_FORCE_INLINE const char * buffer() const
void setUseRemapRange(bool val)
PrincipalReportAs opPrincipalReportAs(const SOP_NodeVerb::CookParms &cookparms) const
An output stream object that owns its own string buffer storage.
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
void setUseRangeMax(bool val)
ParmType getNestParmType(TempIndex fieldnum) const override
IntegrationDomain opIntegrationDomain(const SOP_NodeVerb::CookParms &cookparms) const
CenterType getCenterType() const
UT_SharedPtr< UT_Ramp > opColorramp(const SOP_NodeVerb::CookParms &cookparms) const
**But if you need a result
fpreal64 opVectorScale(const SOP_NodeVerb::CookParms &cookparms) const
bool getUseRangeMax() const
void setUmbilicCutoff(fpreal64 val)
static void saveData(std::ostream &os, UT_Vector2D v)
void setScaleNormalize(bool val)
IntegrationDomain getIntegrationDomain() const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
GroupType getGroupType() const
CurvatureType opCurvatureType(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getSrcAttrib() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
void setPosAttrib(const UT_StringHolder &val)
IntegrationMode getIntegrationMode() const
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
constexpr SYS_FORCE_INLINE T & x() noexcept
void setRefineToManifold(bool val)
bool opDivideElementArea(const SOP_NodeVerb::CookParms &cookparms) const
bool isParmColorRamp(exint idx) const override
bool opUseCenterWidth(const SOP_NodeVerb::CookParms &cookparms) const
void setIntegrationDomain(IntegrationDomain val)
UT_StringHolder opRangeGroup(const SOP_NodeVerb::CookParms &cookparms) const
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
constexpr SYS_FORCE_INLINE T & x() noexcept
bool opUseRemapRange(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opSrcAttrib(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE UT_StringHolder getToken(GroupType enum_value)
PrincipalType opPrincipalType(const SOP_NodeVerb::CookParms &cookparms) const
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
static void loadData(UT_IStream &is, UT_Vector2I &v)
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
UT_Vector2D getRemapRange() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
bool getUseRangeGroup() const
bool opUseTotalAttrib(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, fpreal64 &v)
void setMeasure(Measure val)
void setVectorScale(fpreal64 val)
void setUseCenterWidth(bool val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
void setRemapRange(UT_Vector2D val)
void setRangeGroup(const UT_StringHolder &val)
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
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
static void loadData(UT_IStream &is, UT_StringHolder &v)
PrincipalSign getPrincipalSign() const
void setPrincipalType(PrincipalType val)
void setGroup(const UT_StringHolder &val)
PrincipalSign opPrincipalSign(const SOP_NodeVerb::CookParms &cookparms) const
const OP_GraphProxy * graph() const
void setTotalAttribName(const UT_StringHolder &val)
void copyFrom(const OP_NodeParms *src) override
bool operator==(const SOP_Measure_2_0Parms &src) const
void setColorramp(UT_SharedPtr< UT_Ramp > val)
bool opUseRangeMax(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opFixedCenter(const SOP_NodeVerb::CookParms &cookparms) const
void setPieceAttrib(const UT_StringHolder &val)
void setUseRangeMin(bool val)
static void saveData(std::ostream &os, fpreal64 v)
fpreal64 opRangeMin(const SOP_NodeVerb::CookParms &cookparms) const
void setUseRangeGroup(bool val)
fpreal64 opRangeMax(const SOP_NodeVerb::CookParms &cookparms) const
bool load(UT_IStream &is)
static void loadData(UT_IStream &is, UT_Vector3I &v)
static void loadData(UT_IStream &is, UT_Vector4D &v)
fpreal64 getVectorScale() const
void setAttribName(const UT_StringHolder &val)
bool getScaleNormalize() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
static void saveData(std::ostream &os, UT_Vector4D v)
void setRangeMin(fpreal64 val)
void save(std::ostream &os) const
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
fpreal64 getRangeMin() const
void saveBinary(std::ostream &os) const
Save string to binary stream.
void setUseCustomPos(bool val)
void setFixedCenter(fpreal64 val)
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
static void saveData(std::ostream &os, UT_Matrix4D v)
UT_Vector2D opRemapRange(const SOP_NodeVerb::CookParms &cookparms) const
GT_API const UT_StringHolder version
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
static void loadData(UT_IStream &is, UT_Vector4I &v)
bool opUseCustomPos(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
static void saveData(std::ostream &os, UT_Matrix3D v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
fpreal64 getWidth() const
bool getUseCustomPos() const
const char * getNestParmName(TempIndex fieldnum) const override
UT_StringHolder opPosAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
DEP_MicroNode * depnode() const
void setGroupType(GroupType val)
WidthScale getWidthScale() const
void setCurvatureType(CurvatureType val)
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
static void loadData(UT_IStream &is, int64 &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
constexpr SYS_FORCE_INLINE T & w() noexcept
virtual UT_StringHolder baseGetSignature() const
static void saveData(std::ostream &os, UT_Vector3D v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
fpreal getCookTime() const
const UT_StringHolder & getRangeGroup() const
void setPrincipalSign(PrincipalSign val)
const char * findChar(int c) const
fpreal64 opUmbilicCutoff(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
UT_StringHolder opTotalAttribName(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getFixedCenter() const
UT_StringHolder opAttribName(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getUmbilicCutoff() const
void setCenterType(CenterType val)
bool opScaleNormalize(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getGroup() const
PrincipalReportAs getPrincipalReportAs() const
constexpr SYS_FORCE_INLINE T & y() noexcept
static void saveData(std::ostream &os, UT_StringHolder s)
void setSrcAttrib(const UT_StringHolder &val)
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
static void loadData(UT_IStream &is, UT_Matrix2D &v)
fpreal64 getRangeMax() const
bool operator!=(const SOP_Measure_2_0Parms &src) const
static void saveData(std::ostream &os, int64 v)
void loadFromOpSubclass(const LoadParms &loadparms) override
constexpr SYS_FORCE_INLINE T & y() noexcept
SYS_FORCE_INLINE bool isstring() const
void setBakeIntoOutput(bool val)
SrcComp getSrcComp() const
const UT_StringHolder & getPosAttrib() const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
void setSrcComp(SrcComp val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
constexpr SYS_FORCE_INLINE T & x() noexcept
GroupType opGroupType(const SOP_NodeVerb::CookParms &cookparms) const
void setWidthScale(WidthScale val)