23 namespace SOP_QuadRemeshEnums
34 using namespace UT::Literal;
54 using namespace UT::Literal;
74 using namespace UT::Literal;
91 using namespace UT::Literal;
108 using namespace UT::Literal;
109 switch (enum_value) {
125 using namespace UT::Literal;
126 switch (enum_value) {
142 using namespace UT::Literal;
143 switch (enum_value) {
159 using namespace UT::Literal;
160 switch (enum_value) {
176 using namespace UT::Literal;
177 switch (enum_value) {
196 myDecimationLevel = 2;
198 myResolutionMode = 0;
199 myTargetQuadCount = 10000;
200 myTargetQuadArea = .1;
201 myTargetTolerance = .1;
202 myResolutionScale = 0;
203 myResolutionSource = 0;
204 myTriangleArea = .125;
212 myMirrorOutput =
true;
213 myEnableAdaptivity =
true;
214 myAdaptivityWeight = 0.5;
215 myAdaptivityMaskAttrib =
""_UTsh;
216 myAdaptivitySizing =
false;
217 myAdaptivitySizingAttrib =
""_UTsh;
218 myFeatureBoundaries =
true;
220 myGlobalWeight = 0.1;
221 myGlobalMask =
""_UTsh;
223 myLocalCurvatureWeight = 1;
224 myCurvatureMaskAttrib =
""_UTsh;
225 myCurvatureRotation = 0;
228 myLocalBoundaryWeight = 1;
229 myBoundaryMaskAttrib =
""_UTsh;
230 myBoundaryRotation = 0;
232 myGuideMaskAttrib =
""_UTsh;
233 myGuideAttrib =
""_UTsh;
234 myAdaptivitySizingWeight = 1;
236 myLocalGuideWeight = 1;
249 if (myGroup != src.myGroup)
return false;
250 if (myDecimation != src.myDecimation)
return false;
251 if (myDecimationLevel != src.myDecimationLevel)
return false;
252 if (myOutput != src.myOutput)
return false;
253 if (myResolutionMode != src.myResolutionMode)
return false;
254 if (myTargetQuadCount != src.myTargetQuadCount)
return false;
255 if (myTargetQuadArea != src.myTargetQuadArea)
return false;
256 if (myTargetTolerance != src.myTargetTolerance)
return false;
257 if (myResolutionScale != src.myResolutionScale)
return false;
258 if (myResolutionSource != src.myResolutionSource)
return false;
259 if (myTriangleArea != src.myTriangleArea)
return false;
260 if (mySymmetryCenter != src.mySymmetryCenter)
return false;
261 if (myXAxis != src.myXAxis)
return false;
262 if (myXDirection != src.myXDirection)
return false;
263 if (myYAxis != src.myYAxis)
return false;
264 if (myYDirection != src.myYDirection)
return false;
265 if (myZAxis != src.myZAxis)
return false;
266 if (myZDirection != src.myZDirection)
return false;
267 if (myMirrorOutput != src.myMirrorOutput)
return false;
268 if (myEnableAdaptivity != src.myEnableAdaptivity)
return false;
269 if (myAdaptivityWeight != src.myAdaptivityWeight)
return false;
270 if (myAdaptivityMaskAttrib != src.myAdaptivityMaskAttrib)
return false;
271 if (myAdaptivitySizing != src.myAdaptivitySizing)
return false;
272 if (myAdaptivitySizingAttrib != src.myAdaptivitySizingAttrib)
return false;
273 if (myFeatureBoundaries != src.myFeatureBoundaries)
return false;
274 if (myField != src.myField)
return false;
275 if (myGlobalWeight != src.myGlobalWeight)
return false;
276 if (myGlobalMask != src.myGlobalMask)
return false;
277 if (myCurvature != src.myCurvature)
return false;
278 if (myLocalCurvatureWeight != src.myLocalCurvatureWeight)
return false;
279 if (myCurvatureMaskAttrib != src.myCurvatureMaskAttrib)
return false;
280 if (myCurvatureRotation != src.myCurvatureRotation)
return false;
281 if (myBoundary != src.myBoundary)
return false;
282 if (myBoundaryMode != src.myBoundaryMode)
return false;
283 if (myLocalBoundaryWeight != src.myLocalBoundaryWeight)
return false;
284 if (myBoundaryMaskAttrib != src.myBoundaryMaskAttrib)
return false;
285 if (myBoundaryRotation != src.myBoundaryRotation)
return false;
286 if (myGuide != src.myGuide)
return false;
287 if (myGuideMaskAttrib != src.myGuideMaskAttrib)
return false;
288 if (myGuideAttrib != src.myGuideAttrib)
return false;
289 if (myAdaptivitySizingWeight != src.myAdaptivitySizingWeight)
return false;
290 if (myGuideMode != src.myGuideMode)
return false;
291 if (myLocalGuideWeight != src.myLocalGuideWeight)
return false;
318 graph->
evalOpParm(myGroup, nodeidx,
"group", time, graph->
isDirect()?
nullptr:depnode);
321 graph->
evalOpParm(myDecimation, nodeidx,
"decimation", time, graph->
isDirect()?
nullptr:depnode);
322 myDecimationLevel = 2;
323 if (
true && ( (
true&&!(((getDecimation()==0)))) ) )
324 graph->
evalOpParm(myDecimationLevel, nodeidx,
"decimationlevel", time, graph->
isDirect()?
nullptr:depnode);
327 graph->
evalOpParm(myOutput, nodeidx,
"output", time, graph->
isDirect()?
nullptr:depnode);
328 myResolutionMode = 0;
330 graph->
evalOpParm(myResolutionMode, nodeidx,
"resolution", time, graph->
isDirect()?
nullptr:depnode);
331 myTargetQuadCount = 10000;
332 if (
true && ( (
true&&!(((
int64(getResolutionMode())!=0)))) ) )
333 graph->
evalOpParm(myTargetQuadCount, nodeidx,
"targetquadcount", time, graph->
isDirect()?
nullptr:depnode);
334 myTargetQuadArea = .1;
335 if (
true && ( (
true&&!(((
int64(getResolutionMode())!=1)))) ) )
336 graph->
evalOpParm(myTargetQuadArea, nodeidx,
"targetquadarea", time, graph->
isDirect()?
nullptr:depnode);
337 myTargetTolerance = .1;
338 if (
true && ( (
true&&!(((
int64(getResolutionMode())!=2)))) ) )
339 graph->
evalOpParm(myTargetTolerance, nodeidx,
"targettolerance", time, graph->
isDirect()?
nullptr:depnode);
340 myResolutionScale = 0;
341 if (
true && ( (
true&&!(((
int64(getResolutionMode())!=4)&&(
int64(getResolutionMode())!=3)))) ) )
342 graph->
evalOpParm(myResolutionScale, nodeidx,
"resolutionscale", time, graph->
isDirect()?
nullptr:depnode);
343 myResolutionSource = 0;
344 if (
true && ( (
true&&!(((
int64(getResolutionMode())!=4)))) ) )
345 graph->
evalOpParm(myResolutionSource, nodeidx,
"resolutionsource", time, graph->
isDirect()?
nullptr:depnode);
346 myTriangleArea = .125;
347 if (
true && ( (
true&&!(((
int64(getResolutionMode())!=4))||((
int64(getResolutionSource())!=1)))) ) )
348 graph->
evalOpParm(myTriangleArea, nodeidx,
"trianglearea", time, graph->
isDirect()?
nullptr:depnode);
351 graph->
evalOpParm(mySymmetryCenter, nodeidx,
"symmetrycenter", time, graph->
isDirect()?
nullptr:depnode);
354 graph->
evalOpParm(myXAxis, nodeidx,
"xaxis", time, graph->
isDirect()?
nullptr:depnode);
357 graph->
evalOpParm(myXDirection, nodeidx,
"xdirection", time, graph->
isDirect()?
nullptr:depnode);
360 graph->
evalOpParm(myYAxis, nodeidx,
"yaxis", time, graph->
isDirect()?
nullptr:depnode);
363 graph->
evalOpParm(myYDirection, nodeidx,
"ydirection", time, graph->
isDirect()?
nullptr:depnode);
366 graph->
evalOpParm(myZAxis, nodeidx,
"zaxis", time, graph->
isDirect()?
nullptr:depnode);
369 graph->
evalOpParm(myZDirection, nodeidx,
"zdirection", time, graph->
isDirect()?
nullptr:depnode);
370 myMirrorOutput =
true;
372 graph->
evalOpParm(myMirrorOutput, nodeidx,
"mirroroutput", time, graph->
isDirect()?
nullptr:depnode);
373 myEnableAdaptivity =
true;
375 graph->
evalOpParm(myEnableAdaptivity, nodeidx,
"enableadaptivity", time, graph->
isDirect()?
nullptr:depnode);
376 myAdaptivityWeight = 0.5;
377 if (
true && ( (
true&&!(((getEnableAdaptivity()==0)))) ) )
378 graph->
evalOpParm(myAdaptivityWeight, nodeidx,
"adaptivityweight", time, graph->
isDirect()?
nullptr:depnode);
379 myAdaptivityMaskAttrib =
""_UTsh;
380 if (
true && ( (
true&&!(((getEnableAdaptivity()==0)))) ) )
381 graph->
evalOpParm(myAdaptivityMaskAttrib, nodeidx,
"adaptivitymaskattrib", time, graph->
isDirect()?
nullptr:depnode);
382 myAdaptivitySizing =
false;
383 if (
true && ( (
true&&!(((getEnableAdaptivity()==0)))) ) )
384 graph->
evalOpParm(myAdaptivitySizing, nodeidx,
"adaptivitysizing", time, graph->
isDirect()?
nullptr:depnode);
385 myAdaptivitySizingAttrib =
""_UTsh;
386 if (
true && ( (
true&&!(((getAdaptivitySizing()==0))||((getEnableAdaptivity()==0)))) ) )
387 graph->
evalOpParm(myAdaptivitySizingAttrib, nodeidx,
"adaptivitysizingattrib", time, graph->
isDirect()?
nullptr:depnode);
388 myFeatureBoundaries =
true;
390 graph->
evalOpParm(myFeatureBoundaries, nodeidx,
"featureboundaries", time, graph->
isDirect()?
nullptr:depnode);
393 graph->
evalOpParm(myField, nodeidx,
"field", time, graph->
isDirect()?
nullptr:depnode);
394 myGlobalWeight = 0.1;
396 graph->
evalOpParm(myGlobalWeight, nodeidx,
"globalweight", time, graph->
isDirect()?
nullptr:depnode);
397 myGlobalMask =
""_UTsh;
398 if (
true && ( (
true&&!(((
int64(getField())==1)))) ) )
399 graph->
evalOpParm(myGlobalMask, nodeidx,
"globalmask", time, graph->
isDirect()?
nullptr:depnode);
401 if (
true && ( (
true&&!(((
int64(getField())==1)))) ) )
402 graph->
evalOpParm(myCurvature, nodeidx,
"curvature", time, graph->
isDirect()?
nullptr:depnode);
403 myLocalCurvatureWeight = 1;
404 if (
true && ( (
true&&!(((
int64(getField())==1))||((getCurvature()==0)))) ) )
405 graph->
evalOpParm(myLocalCurvatureWeight, nodeidx,
"localcurvatureweight", time, graph->
isDirect()?
nullptr:depnode);
406 myCurvatureMaskAttrib =
""_UTsh;
407 if (
true && ( (
true&&!(((
int64(getField())==1))||((getCurvature()==0)))) ) )
408 graph->
evalOpParm(myCurvatureMaskAttrib, nodeidx,
"curvaturemaskattrib", time, graph->
isDirect()?
nullptr:depnode);
409 myCurvatureRotation = 0;
410 if (
true && ( (
true&&!(((
int64(getField())==1))||((getCurvature()==0)))) ) )
411 graph->
evalOpParm(myCurvatureRotation, nodeidx,
"curvaturerotation", time, graph->
isDirect()?
nullptr:depnode);
413 if (
true && ( (
true&&!(((
int64(getField())==1)))) ) )
414 graph->
evalOpParm(myBoundary, nodeidx,
"boundary", time, graph->
isDirect()?
nullptr:depnode);
416 if (
true && ( (
true&&!(((
int64(getField())==1))||((getBoundary()==0)))) ) )
417 graph->
evalOpParm(myBoundaryMode, nodeidx,
"boundarymode", time, graph->
isDirect()?
nullptr:depnode);
418 myLocalBoundaryWeight = 1;
419 if (
true && ( (
true&&!(((
int64(getField())==1))||((getBoundary()==0)))) ) )
420 graph->
evalOpParm(myLocalBoundaryWeight, nodeidx,
"localboundaryweight", time, graph->
isDirect()?
nullptr:depnode);
421 myBoundaryMaskAttrib =
""_UTsh;
422 if (
true && ( (
true&&!(((
int64(getField())==1))||((getBoundary()==0)))) ) )
423 graph->
evalOpParm(myBoundaryMaskAttrib, nodeidx,
"boundarymaskattrib", time, graph->
isDirect()?
nullptr:depnode);
424 myBoundaryRotation = 0;
425 if (
true && ( (
true&&!(((
int64(getField())==1))||((getBoundary()==0)))) ) )
426 graph->
evalOpParm(myBoundaryRotation, nodeidx,
"boundaryrotation", time, graph->
isDirect()?
nullptr:depnode);
428 if (
true && ( (
true&&!(((
int64(getField())==1)))) ) )
429 graph->
evalOpParm(myGuide, nodeidx,
"guide", time, graph->
isDirect()?
nullptr:depnode);
430 myGuideMaskAttrib =
""_UTsh;
431 if (
true && ( (
true&&!(((
int64(getField())==1))||((getGuide()==0)))) ) )
432 graph->
evalOpParm(myGuideMaskAttrib, nodeidx,
"guidemaskattrib", time, graph->
isDirect()?
nullptr:depnode);
433 myGuideAttrib =
""_UTsh;
434 if (
true && ( (
true&&!(((
int64(getField())==1))||((getGuide()==0)))) ) )
435 graph->
evalOpParm(myGuideAttrib, nodeidx,
"guideattrib", time, graph->
isDirect()?
nullptr:depnode);
436 myAdaptivitySizingWeight = 1;
437 if (
true && ( (
true&&!(((getAdaptivitySizing()==0))||((getEnableAdaptivity()==0))||((getAdaptivitySizingAttrib()==
"")))) ) )
438 graph->
evalOpParm(myAdaptivitySizingWeight, nodeidx,
"adaptivitysizingweight", time, graph->
isDirect()?
nullptr:depnode);
440 if (
true && ( (
true&&!(((
int64(getField())==1))||((getGuide()==0))||((getGuideAttrib()==
"")))) ) )
441 graph->
evalOpParm(myGuideMode, nodeidx,
"guidemode", time, graph->
isDirect()?
nullptr:depnode);
442 myLocalGuideWeight = 1;
443 if (
true && ( (
true&&!(((
int64(getField())==1))||((getGuide()==0))||((getGuideAttrib()==
"")))) ) )
444 graph->
evalOpParm(myLocalGuideWeight, nodeidx,
"localguideweight", time, graph->
isDirect()?
nullptr:depnode);
460 template <
typename T>
467 if (idx.
size() != instance.
size()+1)
472 coerceValue(value, myGroup);
475 coerceValue(value, myDecimation);
478 coerceValue(value, myDecimationLevel);
481 coerceValue(value, myOutput);
484 coerceValue(value, myResolutionMode);
487 coerceValue(value, myTargetQuadCount);
490 coerceValue(value, myTargetQuadArea);
493 coerceValue(value, myTargetTolerance);
496 coerceValue(value, myResolutionScale);
499 coerceValue(value, myResolutionSource);
502 coerceValue(value, myTriangleArea);
505 coerceValue(value, mySymmetryCenter);
508 coerceValue(value, myXAxis);
511 coerceValue(value, myXDirection);
514 coerceValue(value, myYAxis);
517 coerceValue(value, myYDirection);
520 coerceValue(value, myZAxis);
523 coerceValue(value, myZDirection);
526 coerceValue(value, myMirrorOutput);
529 coerceValue(value, myEnableAdaptivity);
532 coerceValue(value, myAdaptivityWeight);
535 coerceValue(value, myAdaptivityMaskAttrib);
538 coerceValue(value, myAdaptivitySizing);
541 coerceValue(value, myAdaptivitySizingAttrib);
544 coerceValue(value, myFeatureBoundaries);
547 coerceValue(value, myField);
550 coerceValue(value, myGlobalWeight);
553 coerceValue(value, myGlobalMask);
556 coerceValue(value, myCurvature);
559 coerceValue(value, myLocalCurvatureWeight);
562 coerceValue(value, myCurvatureMaskAttrib);
565 coerceValue(value, myCurvatureRotation);
568 coerceValue(value, myBoundary);
571 coerceValue(value, myBoundaryMode);
574 coerceValue(value, myLocalBoundaryWeight);
577 coerceValue(value, myBoundaryMaskAttrib);
580 coerceValue(value, myBoundaryRotation);
583 coerceValue(value, myGuide);
586 coerceValue(value, myGuideMaskAttrib);
589 coerceValue(value, myGuideAttrib);
592 coerceValue(value, myAdaptivitySizingWeight);
595 coerceValue(value, myGuideMode);
598 coerceValue(value, myLocalGuideWeight);
614 { doGetParmValue(idx, instance, value); }
616 { doGetParmValue(idx, instance, value); }
618 { doGetParmValue(idx, instance, value); }
620 { doGetParmValue(idx, instance, value); }
622 { doGetParmValue(idx, instance, value); }
624 { doGetParmValue(idx, instance, value); }
626 { doGetParmValue(idx, instance, value); }
628 { doGetParmValue(idx, instance, value); }
630 { doGetParmValue(idx, instance, value); }
632 { doGetParmValue(idx, instance, value); }
634 { doGetParmValue(idx, instance, value); }
636 template <
typename T>
643 if (idx.
size() != instance.
size()+1)
648 coerceValue(myGroup, ( ( value ) ));
651 coerceValue(myDecimation, ( ( value ) ));
654 coerceValue(myDecimationLevel, clampMinValue(1, clampMaxValue(12, value ) ));
657 coerceValue(myOutput, clampMinValue(0, clampMaxValue(1, value ) ));
660 coerceValue(myResolutionMode, clampMinValue(0, clampMaxValue(4, value ) ));
663 coerceValue(myTargetQuadCount, clampMinValue(1, ( value ) ));
666 coerceValue(myTargetQuadArea, clampMinValue(0, ( value ) ));
669 coerceValue(myTargetTolerance, clampMinValue(0, ( value ) ));
672 coerceValue(myResolutionScale, ( ( value ) ));
675 coerceValue(myResolutionSource, clampMinValue(0, clampMaxValue(1, value ) ));
678 coerceValue(myTriangleArea, ( ( value ) ));
681 coerceValue(mySymmetryCenter, ( ( value ) ));
684 coerceValue(myXAxis, ( ( value ) ));
687 coerceValue(myXDirection, clampMinValue(0, clampMaxValue(1, value ) ));
690 coerceValue(myYAxis, ( ( value ) ));
693 coerceValue(myYDirection, clampMinValue(0, clampMaxValue(1, value ) ));
696 coerceValue(myZAxis, ( ( value ) ));
699 coerceValue(myZDirection, clampMinValue(0, clampMaxValue(1, value ) ));
702 coerceValue(myMirrorOutput, ( ( value ) ));
705 coerceValue(myEnableAdaptivity, ( ( value ) ));
708 coerceValue(myAdaptivityWeight, clampMinValue(0, ( value ) ));
711 coerceValue(myAdaptivityMaskAttrib, ( ( value ) ));
714 coerceValue(myAdaptivitySizing, ( ( value ) ));
717 coerceValue(myAdaptivitySizingAttrib, ( ( value ) ));
720 coerceValue(myFeatureBoundaries, ( ( value ) ));
723 coerceValue(myField, clampMinValue(0, clampMaxValue(1, value ) ));
726 coerceValue(myGlobalWeight, clampMinValue(0, ( value ) ));
729 coerceValue(myGlobalMask, ( ( value ) ));
732 coerceValue(myCurvature, ( ( value ) ));
735 coerceValue(myLocalCurvatureWeight, clampMinValue(0, ( value ) ));
738 coerceValue(myCurvatureMaskAttrib, ( ( value ) ));
741 coerceValue(myCurvatureRotation, ( ( value ) ));
744 coerceValue(myBoundary, ( ( value ) ));
747 coerceValue(myBoundaryMode, clampMinValue(0, clampMaxValue(1, value ) ));
750 coerceValue(myLocalBoundaryWeight, clampMinValue(0, ( value ) ));
753 coerceValue(myBoundaryMaskAttrib, ( ( value ) ));
756 coerceValue(myBoundaryRotation, ( ( value ) ));
759 coerceValue(myGuide, ( ( value ) ));
762 coerceValue(myGuideMaskAttrib, ( ( value ) ));
765 coerceValue(myGuideAttrib, ( ( value ) ));
768 coerceValue(myAdaptivitySizingWeight, clampMinValue(0, ( value ) ));
771 coerceValue(myGuideMode, clampMinValue(0, clampMaxValue(1, value ) ));
774 coerceValue(myLocalGuideWeight, clampMinValue(0, ( 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); }
801 { doSetParmValue(idx, instance, value); }
817 if (fieldnum.
size() < 1)
826 return "decimationlevel";
832 return "targetquadcount";
834 return "targetquadarea";
836 return "targettolerance";
838 return "resolutionscale";
840 return "resolutionsource";
842 return "trianglearea";
844 return "symmetrycenter";
858 return "mirroroutput";
860 return "enableadaptivity";
862 return "adaptivityweight";
864 return "adaptivitymaskattrib";
866 return "adaptivitysizing";
868 return "adaptivitysizingattrib";
870 return "featureboundaries";
874 return "globalweight";
880 return "localcurvatureweight";
882 return "curvaturemaskattrib";
884 return "curvaturerotation";
888 return "boundarymode";
890 return "localboundaryweight";
892 return "boundarymaskattrib";
894 return "boundaryrotation";
898 return "guidemaskattrib";
900 return "guideattrib";
902 return "adaptivitysizingweight";
906 return "localguideweight";
914 if (fieldnum.
size() < 1)
915 return PARM_UNSUPPORTED;
1001 return PARM_INTEGER;
1006 return PARM_UNSUPPORTED;
1011 { is.
bread(&v, 1); }
1042 loadData(is, rampdata);
1060 int typelen = colon - data.
buffer();
1072 { UTwrite(os, &v); }
1074 {
int64 iv =
v; UTwrite(os, &iv); }
1076 { UTwrite<fpreal64>(os, &
v); }
1078 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
1080 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1081 UTwrite<fpreal64>(os, &v.
z()); }
1083 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1084 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
1096 if (s) s->save(ostr);
1097 result = ostr.
str();
1098 saveData(os, result);
1105 ostr << s->getDataTypeToken();
1107 s->saveBinary(ostr);
1109 result = ostr.
str();
1110 saveData(os, result);
1118 saveData(os, myGroup);
1119 saveData(os, myDecimation);
1120 saveData(os, myDecimationLevel);
1121 saveData(os, myOutput);
1122 saveData(os, myResolutionMode);
1123 saveData(os, myTargetQuadCount);
1124 saveData(os, myTargetQuadArea);
1125 saveData(os, myTargetTolerance);
1126 saveData(os, myResolutionScale);
1127 saveData(os, myResolutionSource);
1128 saveData(os, myTriangleArea);
1129 saveData(os, mySymmetryCenter);
1130 saveData(os, myXAxis);
1131 saveData(os, myXDirection);
1132 saveData(os, myYAxis);
1133 saveData(os, myYDirection);
1134 saveData(os, myZAxis);
1135 saveData(os, myZDirection);
1136 saveData(os, myMirrorOutput);
1137 saveData(os, myEnableAdaptivity);
1138 saveData(os, myAdaptivityWeight);
1139 saveData(os, myAdaptivityMaskAttrib);
1140 saveData(os, myAdaptivitySizing);
1141 saveData(os, myAdaptivitySizingAttrib);
1142 saveData(os, myFeatureBoundaries);
1143 saveData(os, myField);
1144 saveData(os, myGlobalWeight);
1145 saveData(os, myGlobalMask);
1146 saveData(os, myCurvature);
1147 saveData(os, myLocalCurvatureWeight);
1148 saveData(os, myCurvatureMaskAttrib);
1149 saveData(os, myCurvatureRotation);
1150 saveData(os, myBoundary);
1151 saveData(os, myBoundaryMode);
1152 saveData(os, myLocalBoundaryWeight);
1153 saveData(os, myBoundaryMaskAttrib);
1154 saveData(os, myBoundaryRotation);
1155 saveData(os, myGuide);
1156 saveData(os, myGuideMaskAttrib);
1157 saveData(os, myGuideAttrib);
1158 saveData(os, myAdaptivitySizingWeight);
1159 saveData(os, myGuideMode);
1160 saveData(os, myLocalGuideWeight);
1173 loadData(is, myGroup);
1174 loadData(is, myDecimation);
1175 loadData(is, myDecimationLevel);
1176 loadData(is, myOutput);
1177 loadData(is, myResolutionMode);
1178 loadData(is, myTargetQuadCount);
1179 loadData(is, myTargetQuadArea);
1180 loadData(is, myTargetTolerance);
1181 loadData(is, myResolutionScale);
1182 loadData(is, myResolutionSource);
1183 loadData(is, myTriangleArea);
1184 loadData(is, mySymmetryCenter);
1185 loadData(is, myXAxis);
1186 loadData(is, myXDirection);
1187 loadData(is, myYAxis);
1188 loadData(is, myYDirection);
1189 loadData(is, myZAxis);
1190 loadData(is, myZDirection);
1191 loadData(is, myMirrorOutput);
1192 loadData(is, myEnableAdaptivity);
1193 loadData(is, myAdaptivityWeight);
1194 loadData(is, myAdaptivityMaskAttrib);
1195 loadData(is, myAdaptivitySizing);
1196 loadData(is, myAdaptivitySizingAttrib);
1197 loadData(is, myFeatureBoundaries);
1198 loadData(is, myField);
1199 loadData(is, myGlobalWeight);
1200 loadData(is, myGlobalMask);
1201 loadData(is, myCurvature);
1202 loadData(is, myLocalCurvatureWeight);
1203 loadData(is, myCurvatureMaskAttrib);
1204 loadData(is, myCurvatureRotation);
1205 loadData(is, myBoundary);
1206 loadData(is, myBoundaryMode);
1207 loadData(is, myLocalBoundaryWeight);
1208 loadData(is, myBoundaryMaskAttrib);
1209 loadData(is, myBoundaryRotation);
1210 loadData(is, myGuide);
1211 loadData(is, myGuideMaskAttrib);
1212 loadData(is, myGuideAttrib);
1213 loadData(is, myAdaptivitySizingWeight);
1214 loadData(is, myGuideMode);
1215 loadData(is, myLocalGuideWeight);
1225 if (!thissop)
return getGroup();
1227 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
1235 if (!thissop)
return getDecimation();
1237 OP_Utils::evalOpParm(result, thissop,
"decimation", cookparms.
getCookTime(), 0);
1245 if (!thissop)
return getDecimationLevel();
1247 OP_Utils::evalOpParm(result, thissop,
"decimationlevel", cookparms.
getCookTime(), 0);
1255 if (!thissop)
return getOutput();
1257 OP_Utils::evalOpParm(result, thissop,
"output", cookparms.
getCookTime(), 0);
1265 if (!thissop)
return getResolutionMode();
1267 OP_Utils::evalOpParm(result, thissop,
"resolution", cookparms.
getCookTime(), 0);
1275 if (!thissop)
return getTargetQuadCount();
1277 OP_Utils::evalOpParm(result, thissop,
"targetquadcount", cookparms.
getCookTime(), 0);
1285 if (!thissop)
return getTargetQuadArea();
1287 OP_Utils::evalOpParm(result, thissop,
"targetquadarea", cookparms.
getCookTime(), 0);
1295 if (!thissop)
return getTargetTolerance();
1297 OP_Utils::evalOpParm(result, thissop,
"targettolerance", cookparms.
getCookTime(), 0);
1305 if (!thissop)
return getResolutionScale();
1307 OP_Utils::evalOpParm(result, thissop,
"resolutionscale", cookparms.
getCookTime(), 0);
1315 if (!thissop)
return getResolutionSource();
1317 OP_Utils::evalOpParm(result, thissop,
"resolutionsource", cookparms.
getCookTime(), 0);
1325 if (!thissop)
return getTriangleArea();
1327 OP_Utils::evalOpParm(result, thissop,
"trianglearea", cookparms.
getCookTime(), 0);
1335 if (!thissop)
return getSymmetryCenter();
1337 OP_Utils::evalOpParm(result, thissop,
"symmetrycenter", cookparms.
getCookTime(), 0);
1345 if (!thissop)
return getXAxis();
1347 OP_Utils::evalOpParm(result, thissop,
"xaxis", cookparms.
getCookTime(), 0);
1355 if (!thissop)
return getXDirection();
1357 OP_Utils::evalOpParm(result, thissop,
"xdirection", cookparms.
getCookTime(), 0);
1365 if (!thissop)
return getYAxis();
1367 OP_Utils::evalOpParm(result, thissop,
"yaxis", cookparms.
getCookTime(), 0);
1375 if (!thissop)
return getYDirection();
1377 OP_Utils::evalOpParm(result, thissop,
"ydirection", cookparms.
getCookTime(), 0);
1385 if (!thissop)
return getZAxis();
1387 OP_Utils::evalOpParm(result, thissop,
"zaxis", cookparms.
getCookTime(), 0);
1395 if (!thissop)
return getZDirection();
1397 OP_Utils::evalOpParm(result, thissop,
"zdirection", cookparms.
getCookTime(), 0);
1405 if (!thissop)
return getMirrorOutput();
1407 OP_Utils::evalOpParm(result, thissop,
"mirroroutput", cookparms.
getCookTime(), 0);
1415 if (!thissop)
return getEnableAdaptivity();
1417 OP_Utils::evalOpParm(result, thissop,
"enableadaptivity", cookparms.
getCookTime(), 0);
1425 if (!thissop)
return getAdaptivityWeight();
1427 OP_Utils::evalOpParm(result, thissop,
"adaptivityweight", cookparms.
getCookTime(), 0);
1435 if (!thissop)
return getAdaptivityMaskAttrib();
1437 OP_Utils::evalOpParm(result, thissop,
"adaptivitymaskattrib", cookparms.
getCookTime(), 0);
1445 if (!thissop)
return getAdaptivitySizing();
1447 OP_Utils::evalOpParm(result, thissop,
"adaptivitysizing", cookparms.
getCookTime(), 0);
1455 if (!thissop)
return getAdaptivitySizingAttrib();
1457 OP_Utils::evalOpParm(result, thissop,
"adaptivitysizingattrib", cookparms.
getCookTime(), 0);
1465 if (!thissop)
return getFeatureBoundaries();
1467 OP_Utils::evalOpParm(result, thissop,
"featureboundaries", cookparms.
getCookTime(), 0);
1475 if (!thissop)
return getField();
1477 OP_Utils::evalOpParm(result, thissop,
"field", cookparms.
getCookTime(), 0);
1478 return Field(result);
1485 if (!thissop)
return getGlobalWeight();
1487 OP_Utils::evalOpParm(result, thissop,
"globalweight", cookparms.
getCookTime(), 0);
1495 if (!thissop)
return getGlobalMask();
1497 OP_Utils::evalOpParm(result, thissop,
"globalmask", cookparms.
getCookTime(), 0);
1505 if (!thissop)
return getCurvature();
1507 OP_Utils::evalOpParm(result, thissop,
"curvature", cookparms.
getCookTime(), 0);
1515 if (!thissop)
return getLocalCurvatureWeight();
1517 OP_Utils::evalOpParm(result, thissop,
"localcurvatureweight", cookparms.
getCookTime(), 0);
1525 if (!thissop)
return getCurvatureMaskAttrib();
1527 OP_Utils::evalOpParm(result, thissop,
"curvaturemaskattrib", cookparms.
getCookTime(), 0);
1535 if (!thissop)
return getCurvatureRotation();
1537 OP_Utils::evalOpParm(result, thissop,
"curvaturerotation", cookparms.
getCookTime(), 0);
1545 if (!thissop)
return getBoundary();
1547 OP_Utils::evalOpParm(result, thissop,
"boundary", cookparms.
getCookTime(), 0);
1555 if (!thissop)
return getBoundaryMode();
1557 OP_Utils::evalOpParm(result, thissop,
"boundarymode", cookparms.
getCookTime(), 0);
1565 if (!thissop)
return getLocalBoundaryWeight();
1567 OP_Utils::evalOpParm(result, thissop,
"localboundaryweight", cookparms.
getCookTime(), 0);
1575 if (!thissop)
return getBoundaryMaskAttrib();
1577 OP_Utils::evalOpParm(result, thissop,
"boundarymaskattrib", cookparms.
getCookTime(), 0);
1585 if (!thissop)
return getBoundaryRotation();
1587 OP_Utils::evalOpParm(result, thissop,
"boundaryrotation", cookparms.
getCookTime(), 0);
1595 if (!thissop)
return getGuide();
1597 OP_Utils::evalOpParm(result, thissop,
"guide", cookparms.
getCookTime(), 0);
1605 if (!thissop)
return getGuideMaskAttrib();
1607 OP_Utils::evalOpParm(result, thissop,
"guidemaskattrib", cookparms.
getCookTime(), 0);
1615 if (!thissop)
return getGuideAttrib();
1617 OP_Utils::evalOpParm(result, thissop,
"guideattrib", cookparms.
getCookTime(), 0);
1625 if (!thissop)
return getAdaptivitySizingWeight();
1627 OP_Utils::evalOpParm(result, thissop,
"adaptivitysizingweight", cookparms.
getCookTime(), 0);
1635 if (!thissop)
return getGuideMode();
1637 OP_Utils::evalOpParm(result, thissop,
"guidemode", cookparms.
getCookTime(), 0);
1645 if (!thissop)
return getLocalGuideWeight();
1647 OP_Utils::evalOpParm(result, thissop,
"localguideweight", cookparms.
getCookTime(), 0);
1654 int64 myDecimationLevel;
1656 int64 myResolutionMode;
1657 int64 myTargetQuadCount;
1660 int64 myResolutionScale;
1661 int64 myResolutionSource;
1670 bool myMirrorOutput;
1671 bool myEnableAdaptivity;
1674 bool myAdaptivitySizing;
1676 bool myFeatureBoundaries;
1685 int64 myBoundaryMode;
void setDecimation(bool val)
BoundaryMode getBoundaryMode() const
void setAdaptivityWeight(fpreal64 val)
BoundaryMode opBoundaryMode(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3D getSymmetryCenter() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
static void saveData(std::ostream &os, UT_Vector3D v)
static void saveData(std::ostream &os, UT_Vector4D v)
void setTargetQuadArea(fpreal64 val)
void setCurvatureRotation(fpreal64 val)
void setLocalCurvatureWeight(fpreal64 val)
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
SOP_Node * getNode() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
fpreal64 opCurvatureRotation(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
static void loadData(UT_IStream &is, UT_Vector3D &v)
void setYDirection(YDirection val)
const UT_StringHolder & getGlobalMask() const
bool opBoundary(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opGuideAttrib(const SOP_NodeVerb::CookParms &cookparms) const
YDirection opYDirection(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Matrix2D v)
fpreal64 opTargetQuadArea(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector4D &v)
const UT_StringHolder & getGuideMaskAttrib() const
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
exint bread(int32 *buffer, exint asize=1)
XDirection opXDirection(const SOP_NodeVerb::CookParms &cookparms) const
int64 getResolutionScale() const
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
const UT_StringHolder & getGuideAttrib() const
bool opGuide(const SOP_NodeVerb::CookParms &cookparms) const
GLsizei const GLfloat * value
fpreal64 getLocalBoundaryWeight() const
Output opOutput(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, bool &v)
void save(std::ostream &os) const
UT_StringHolder opGlobalMask(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, fpreal64 v)
fpreal64 getTriangleArea() const
fpreal64 opAdaptivitySizingWeight(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opTargetTolerance(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opGuideMaskAttrib(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3D opSymmetryCenter(const SOP_NodeVerb::CookParms &cookparms) const
const OP_Context & context() const
void setBoundary(bool val)
bool opDecimation(const SOP_NodeVerb::CookParms &cookparms) const
void setOutput(Output val)
UT_StringHolder opAdaptivityMaskAttrib(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & z() noexcept
SYS_FORCE_INLINE const char * buffer() const
exint getNestNumParms(TempIndex idx) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
void setAdaptivitySizingAttrib(const UT_StringHolder &val)
bool opFeatureBoundaries(const SOP_NodeVerb::CookParms &cookparms) const
const char * getNestParmName(TempIndex fieldnum) const override
void setResolutionMode(ResolutionMode val)
An output stream object that owns its own string buffer storage.
bool opAdaptivitySizing(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getBoundaryRotation() const
bool opEnableAdaptivity(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector4I &v)
void setBoundaryMaskAttrib(const UT_StringHolder &val)
**But if you need a result
void setGlobalWeight(fpreal64 val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
void setGuideAttrib(const UT_StringHolder &val)
static void saveData(std::ostream &os, UT_Matrix3D v)
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
fpreal64 getLocalCurvatureWeight() const
fpreal64 opAdaptivityWeight(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & x() noexcept
fpreal64 getTargetTolerance() const
fpreal64 getAdaptivitySizingWeight() const
GuideMode getGuideMode() const
void setResolutionSource(ResolutionSource val)
fpreal64 getAdaptivityWeight() const
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
void setCurvature(bool val)
ResolutionSource getResolutionSource() const
UT_StringHolder opCurvatureMaskAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void setEnableAdaptivity(bool val)
const UT_StringHolder & getAdaptivityMaskAttrib() const
bool opCurvature(const SOP_NodeVerb::CookParms &cookparms) const
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
constexpr SYS_FORCE_INLINE T & x() noexcept
ParmType getNestParmType(TempIndex fieldnum) const override
void setCurvatureMaskAttrib(const UT_StringHolder &val)
int64 opResolutionScale(const SOP_NodeVerb::CookParms &cookparms) const
ResolutionMode opResolutionMode(const SOP_NodeVerb::CookParms &cookparms) const
int64 getTargetQuadCount() const
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
ResolutionSource opResolutionSource(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opBoundaryRotation(const SOP_NodeVerb::CookParms &cookparms) const
bool opYAxis(const SOP_NodeVerb::CookParms &cookparms) const
Field opField(const SOP_NodeVerb::CookParms &cookparms) const
void setMirrorOutput(bool val)
YDirection getYDirection() const
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
UT_StringHolder opAdaptivitySizingAttrib(const SOP_NodeVerb::CookParms &cookparms) const
bool isParmColorRamp(exint idx) const override
fpreal64 opLocalCurvatureWeight(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
int64 opTargetQuadCount(const SOP_NodeVerb::CookParms &cookparms) const
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
constexpr SYS_FORCE_INLINE T & z() noexcept
bool opMirrorOutput(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE UT_StringHolder getToken(Output enum_value)
static void loadData(UT_IStream &is, int64 &v)
void loadFromOpSubclass(const LoadParms &loadparms) override
const OP_GraphProxy * graph() const
void setBoundaryRotation(fpreal64 val)
bool getFeatureBoundaries() const
bool load(UT_IStream &is)
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
bool opZAxis(const SOP_NodeVerb::CookParms &cookparms) const
void setGuideMode(GuideMode val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
void setLocalGuideWeight(fpreal64 val)
void setZDirection(ZDirection val)
int64 getDecimationLevel() const
ZDirection getZDirection() const
ZDirection opZDirection(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3T< fpreal64 > UT_Vector3D
static void saveData(std::ostream &os, int64 v)
void setGroup(const UT_StringHolder &val)
static void saveData(std::ostream &os, UT_StringHolder s)
void setGuideMaskAttrib(const UT_StringHolder &val)
bool getMirrorOutput() const
void setDecimationLevel(int64 val)
static void saveData(std::ostream &os, UT_Vector2D v)
void setGlobalMask(const UT_StringHolder &val)
void setAdaptivitySizingWeight(fpreal64 val)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
void setLocalBoundaryWeight(fpreal64 val)
static void loadData(UT_IStream &is, fpreal64 &v)
void saveBinary(std::ostream &os) const
Save string to binary stream.
GT_API const UT_StringHolder version
const UT_StringHolder & getBoundaryMaskAttrib() const
static void loadData(UT_IStream &is, UT_Vector3I &v)
fpreal64 getCurvatureRotation() const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
void setTargetQuadCount(int64 val)
static void loadData(UT_IStream &is, UT_Vector2I &v)
static void saveData(std::ostream &os, UT_Matrix4D v)
int64 opDecimationLevel(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
const UT_StringHolder & getAdaptivitySizingAttrib() const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
bool getDecimation() const
ResolutionMode getResolutionMode() const
static void loadData(UT_IStream &is, UT_Matrix3D &v)
void setTargetTolerance(fpreal64 val)
DEP_MicroNode * depnode() const
void setFeatureBoundaries(bool val)
bool operator!=(const SOP_QuadRemeshParms &src) const
LeafData & operator=(const LeafData &)=delete
bool getEnableAdaptivity() const
Utility class for containing a color ramp.
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
void setResolutionScale(int64 val)
constexpr SYS_FORCE_INLINE T & w() noexcept
bool opXAxis(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getGlobalWeight() const
void setXDirection(XDirection val)
static void saveData(std::ostream &os, bool v)
virtual UT_StringHolder baseGetSignature() const
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
void setBoundaryMode(BoundaryMode val)
const UT_StringHolder & getGroup() const
void copyFrom(const OP_NodeParms *src) override
static void loadData(UT_IStream &is, UT_Vector2D &v)
XDirection getXDirection() const
fpreal getCookTime() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
GuideMode opGuideMode(const SOP_NodeVerb::CookParms &cookparms) const
const char * findChar(int c) const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
fpreal64 opGlobalWeight(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
fpreal64 opTriangleArea(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Matrix4D &v)
bool getCurvature() const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
fpreal64 opLocalBoundaryWeight(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & y() noexcept
bool operator==(const SOP_QuadRemeshParms &src) const
UT_StringHolder opBoundaryMaskAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void setTriangleArea(fpreal64 val)
void setSymmetryCenter(UT_Vector3D val)
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
static void loadData(UT_IStream &is, UT_StringHolder &v)
bool getAdaptivitySizing() const
fpreal64 opLocalGuideWeight(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getTargetQuadArea() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
void setAdaptivityMaskAttrib(const UT_StringHolder &val)
constexpr SYS_FORCE_INLINE T & y() noexcept
SYS_FORCE_INLINE bool isstring() const
fpreal64 getLocalGuideWeight() const
void setAdaptivitySizing(bool val)
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
const UT_StringHolder & getCurvatureMaskAttrib() const
constexpr SYS_FORCE_INLINE T & x() noexcept