23 namespace SOP_PolyDoctorEnums
35 using namespace UT::Literal;
54 using namespace UT::Literal;
73 using namespace UT::Literal;
92 using namespace UT::Literal;
111 using namespace UT::Literal;
112 switch (enum_value) {
130 using namespace UT::Literal;
131 switch (enum_value) {
149 using namespace UT::Literal;
150 switch (enum_value) {
168 using namespace UT::Literal;
169 switch (enum_value) {
187 using namespace UT::Literal;
188 switch (enum_value) {
206 using namespace UT::Literal;
207 switch (enum_value) {
225 using namespace UT::Literal;
226 switch (enum_value) {
244 using namespace UT::Literal;
245 switch (enum_value) {
266 myIllFormedAction = 2;
267 myManyEdgesAction = 2;
268 myNonConvexAction = 2;
269 myOverlappingAction = 2;
270 myPairOverlaps =
false;
271 mySelfIntersectingAction = 1;
272 myThickness = 0.0001;
273 myGloballySmallAreasAction = 0;
274 myGlobalAreaThreshold = 1e-06;
275 myLocallySmallAreasAction = 0;
276 myLocalAreaThreshold = 0.01;
277 myNonUniformAction = 0;
278 myUniformityThreshold = 0.01;
279 myGloballySmallEdgesAction = 0;
280 myGlobalEdgeThreshold = 0.001;
281 myLocallySmallEdgesAction = 0;
282 myLocalEdgeThreshold = 0.3;
283 myDisconnectedPointsAction = 0;
284 myNonManifoldPointsAction = 0;
285 myIgnoreWindings =
true;
286 myPreferLargeAngles =
false;
287 myVisualizeMaxManifold =
false;
288 myExportManifoldNumbers =
false;
289 myFixWindings =
false;
290 myDeleteSmallManifolds =
false;
291 mySmallManifoldSize = 0;
292 myAddValidPolyAttrib =
true;
293 myValidPolyAttribName =
"valid_poly"_UTsh;
294 myAddRepairedPolyAttrib =
true;
295 myRepairedPolyAttribName =
"repaired_poly"_UTsh;
296 myAddValidPtsAttrib =
true;
297 myValidPtsAttribName =
"valid_pt"_UTsh;
298 myAddModifiedPtsAttrib =
true;
299 myModifiedPtsAttribName =
"modified_pt"_UTsh;
300 myCreateGroups =
false;
301 myVisualizeInvalidPts =
false;
303 myVisualizeRepairedPts =
false;
305 myVisualizeInvalidPolys =
false;
307 myVisualizeRepairedPolys =
false;
321 if (myGroup != src.myGroup)
return false;
322 if (myMaxPasses != src.myMaxPasses)
return false;
323 if (myRandomSeed != src.myRandomSeed)
return false;
324 if (myIllFormedAction != src.myIllFormedAction)
return false;
325 if (myManyEdgesAction != src.myManyEdgesAction)
return false;
326 if (myNonConvexAction != src.myNonConvexAction)
return false;
327 if (myOverlappingAction != src.myOverlappingAction)
return false;
328 if (myPairOverlaps != src.myPairOverlaps)
return false;
329 if (mySelfIntersectingAction != src.mySelfIntersectingAction)
return false;
330 if (myThickness != src.myThickness)
return false;
331 if (myGloballySmallAreasAction != src.myGloballySmallAreasAction)
return false;
332 if (myGlobalAreaThreshold != src.myGlobalAreaThreshold)
return false;
333 if (myLocallySmallAreasAction != src.myLocallySmallAreasAction)
return false;
334 if (myLocalAreaThreshold != src.myLocalAreaThreshold)
return false;
335 if (myNonUniformAction != src.myNonUniformAction)
return false;
336 if (myUniformityThreshold != src.myUniformityThreshold)
return false;
337 if (myGloballySmallEdgesAction != src.myGloballySmallEdgesAction)
return false;
338 if (myGlobalEdgeThreshold != src.myGlobalEdgeThreshold)
return false;
339 if (myLocallySmallEdgesAction != src.myLocallySmallEdgesAction)
return false;
340 if (myLocalEdgeThreshold != src.myLocalEdgeThreshold)
return false;
341 if (myDisconnectedPointsAction != src.myDisconnectedPointsAction)
return false;
342 if (myNonManifoldPointsAction != src.myNonManifoldPointsAction)
return false;
343 if (myIgnoreWindings != src.myIgnoreWindings)
return false;
344 if (myPreferLargeAngles != src.myPreferLargeAngles)
return false;
345 if (myVisualizeMaxManifold != src.myVisualizeMaxManifold)
return false;
346 if (myExportManifoldNumbers != src.myExportManifoldNumbers)
return false;
347 if (myFixWindings != src.myFixWindings)
return false;
348 if (myDeleteSmallManifolds != src.myDeleteSmallManifolds)
return false;
349 if (mySmallManifoldSize != src.mySmallManifoldSize)
return false;
350 if (myAddValidPolyAttrib != src.myAddValidPolyAttrib)
return false;
351 if (myValidPolyAttribName != src.myValidPolyAttribName)
return false;
352 if (myAddRepairedPolyAttrib != src.myAddRepairedPolyAttrib)
return false;
353 if (myRepairedPolyAttribName != src.myRepairedPolyAttribName)
return false;
354 if (myAddValidPtsAttrib != src.myAddValidPtsAttrib)
return false;
355 if (myValidPtsAttribName != src.myValidPtsAttribName)
return false;
356 if (myAddModifiedPtsAttrib != src.myAddModifiedPtsAttrib)
return false;
357 if (myModifiedPtsAttribName != src.myModifiedPtsAttribName)
return false;
358 if (myCreateGroups != src.myCreateGroups)
return false;
359 if (myVisualizeInvalidPts != src.myVisualizeInvalidPts)
return false;
360 if (myInvalidPtsColor != src.myInvalidPtsColor)
return false;
361 if (myVisualizeRepairedPts != src.myVisualizeRepairedPts)
return false;
362 if (myRepairedPtsColor != src.myRepairedPtsColor)
return false;
363 if (myVisualizeInvalidPolys != src.myVisualizeInvalidPolys)
return false;
364 if (myInvalidPolysColor != src.myInvalidPolysColor)
return false;
365 if (myVisualizeRepairedPolys != src.myVisualizeRepairedPolys)
return false;
366 if (myRepairedPolysColor != src.myRepairedPolysColor)
return false;
393 graph->
evalOpParm(myGroup, nodeidx,
"group", time, 0);
396 graph->
evalOpParm(myMaxPasses, nodeidx,
"maxpasses", time, 0);
399 graph->
evalOpParm(myRandomSeed, nodeidx,
"randomseed", time, 0);
400 myIllFormedAction = 2;
402 graph->
evalOpParm(myIllFormedAction, nodeidx,
"illformed", time, 0);
403 myManyEdgesAction = 2;
404 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0)))) ) )
405 graph->
evalOpParm(myManyEdgesAction, nodeidx,
"manyedges", time, 0);
406 myNonConvexAction = 2;
407 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0))||((
int64(getManyEdgesAction())==0)))) ) )
408 graph->
evalOpParm(myNonConvexAction, nodeidx,
"nonconvex", time, 0);
409 myOverlappingAction = 2;
410 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0)))) ) )
411 graph->
evalOpParm(myOverlappingAction, nodeidx,
"overlapping", time, 0);
412 myPairOverlaps =
false;
413 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0))||((
int64(getOverlappingAction())==0)))) ) )
414 graph->
evalOpParm(myPairOverlaps, nodeidx,
"pairoverlaps", time, 0);
415 mySelfIntersectingAction = 1;
416 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0))||((
int64(getManyEdgesAction())==0))||((
int64(getNonConvexAction())==0)))) ) )
417 graph->
evalOpParm(mySelfIntersectingAction, nodeidx,
"intersect", time, 0);
418 myThickness = 0.0001;
419 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0))||((
int64(getManyEdgesAction())==0))||((
int64(getNonConvexAction())==0)))) ) )
420 graph->
evalOpParm(myThickness, nodeidx,
"thickness", time, 0);
421 myGloballySmallAreasAction = 0;
422 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0)))) ) )
423 graph->
evalOpParm(myGloballySmallAreasAction, nodeidx,
"glosmallarea", time, 0);
424 myGlobalAreaThreshold = 1e-06;
425 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0)))) ) )
426 graph->
evalOpParm(myGlobalAreaThreshold, nodeidx,
"gloareathres", time, 0);
427 myLocallySmallAreasAction = 0;
428 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0)))) ) )
429 graph->
evalOpParm(myLocallySmallAreasAction, nodeidx,
"locsmallarea", time, 0);
430 myLocalAreaThreshold = 0.01;
431 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0)))) ) )
432 graph->
evalOpParm(myLocalAreaThreshold, nodeidx,
"locareathres", time, 0);
433 myNonUniformAction = 0;
434 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0))||((
int64(getManyEdgesAction())==0))||((
int64(getNonConvexAction())==0)))) ) )
435 graph->
evalOpParm(myNonUniformAction, nodeidx,
"nonuni", time, 0);
436 myUniformityThreshold = 0.01;
437 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0))||((
int64(getManyEdgesAction())==0))||((
int64(getNonConvexAction())==0)))) ) )
438 graph->
evalOpParm(myUniformityThreshold, nodeidx,
"unithres", time, 0);
439 myGloballySmallEdgesAction = 0;
441 graph->
evalOpParm(myGloballySmallEdgesAction, nodeidx,
"glosmalledge", time, 0);
442 myGlobalEdgeThreshold = 0.001;
444 graph->
evalOpParm(myGlobalEdgeThreshold, nodeidx,
"gloedgethres", time, 0);
445 myLocallySmallEdgesAction = 0;
447 graph->
evalOpParm(myLocallySmallEdgesAction, nodeidx,
"locsmalledge", time, 0);
448 myLocalEdgeThreshold = 0.3;
450 graph->
evalOpParm(myLocalEdgeThreshold, nodeidx,
"locedgethres", time, 0);
451 myDisconnectedPointsAction = 0;
453 graph->
evalOpParm(myDisconnectedPointsAction, nodeidx,
"disconnectpt", time, 0);
454 myNonManifoldPointsAction = 0;
456 graph->
evalOpParm(myNonManifoldPointsAction, nodeidx,
"nonmanifoldpt", time, 0);
457 myIgnoreWindings =
true;
459 graph->
evalOpParm(myIgnoreWindings, nodeidx,
"ignorewindings", time, 0);
460 myPreferLargeAngles =
false;
461 if (
true && ( (
true&&!(((
int64(getNonManifoldPointsAction())!=2)))) ) )
462 graph->
evalOpParm(myPreferLargeAngles, nodeidx,
"preferlargeangles", time, 0);
463 myVisualizeMaxManifold =
false;
465 graph->
evalOpParm(myVisualizeMaxManifold, nodeidx,
"vismaxmanifold", time, 0);
466 myExportManifoldNumbers =
false;
468 graph->
evalOpParm(myExportManifoldNumbers, nodeidx,
"exportmanifoldnumbers", time, 0);
469 myFixWindings =
false;
471 graph->
evalOpParm(myFixWindings, nodeidx,
"fixwindings", time, 0);
472 myDeleteSmallManifolds =
false;
474 graph->
evalOpParm(myDeleteSmallManifolds, nodeidx,
"deletesmallmanifolds", time, 0);
475 mySmallManifoldSize = 0;
476 if (
true && ( (
true&&!(((getDeleteSmallManifolds()==0)))) ) )
477 graph->
evalOpParm(mySmallManifoldSize, nodeidx,
"smallmanifoldsize", time, 0);
478 myAddValidPolyAttrib =
true;
480 graph->
evalOpParm(myAddValidPolyAttrib, nodeidx,
"usevalidpoly", time, 0);
481 myValidPolyAttribName =
"valid_poly"_UTsh;
483 graph->
evalOpParm(myValidPolyAttribName, nodeidx,
"validpoly", time, 0);
484 myAddRepairedPolyAttrib =
true;
486 graph->
evalOpParm(myAddRepairedPolyAttrib, nodeidx,
"userepairedpoly", time, 0);
487 myRepairedPolyAttribName =
"repaired_poly"_UTsh;
489 graph->
evalOpParm(myRepairedPolyAttribName, nodeidx,
"repairedpoly", time, 0);
490 myAddValidPtsAttrib =
true;
492 graph->
evalOpParm(myAddValidPtsAttrib, nodeidx,
"usevalidpts", time, 0);
493 myValidPtsAttribName =
"valid_pt"_UTsh;
495 graph->
evalOpParm(myValidPtsAttribName, nodeidx,
"validpts", time, 0);
496 myAddModifiedPtsAttrib =
true;
498 graph->
evalOpParm(myAddModifiedPtsAttrib, nodeidx,
"usemodifiedpts", time, 0);
499 myModifiedPtsAttribName =
"modified_pt"_UTsh;
501 graph->
evalOpParm(myModifiedPtsAttribName, nodeidx,
"modifiedpts", time, 0);
502 myCreateGroups =
false;
504 graph->
evalOpParm(myCreateGroups, nodeidx,
"creategrps", time, 0);
505 myVisualizeInvalidPts =
false;
507 graph->
evalOpParm(myVisualizeInvalidPts, nodeidx,
"visinvalidpts", time, 0);
509 if (
true && ( (
true&&!(((getVisualizeInvalidPts()==0)))) ) )
510 graph->
evalOpParm(myInvalidPtsColor, nodeidx,
"visinvalidptsfg", time, 0);
511 myVisualizeRepairedPts =
false;
513 graph->
evalOpParm(myVisualizeRepairedPts, nodeidx,
"visrepairedpts", time, 0);
515 if (
true && ( (
true&&!(((getVisualizeRepairedPts()==0)))) ) )
516 graph->
evalOpParm(myRepairedPtsColor, nodeidx,
"visrepairedptsfg", time, 0);
517 myVisualizeInvalidPolys =
false;
519 graph->
evalOpParm(myVisualizeInvalidPolys, nodeidx,
"visinvalidpolys", time, 0);
521 if (
true && ( (
true&&!(((getVisualizeInvalidPolys()==0)))) ) )
522 graph->
evalOpParm(myInvalidPolysColor, nodeidx,
"visinvalidpolysfg", time, 0);
523 myVisualizeRepairedPolys =
false;
525 graph->
evalOpParm(myVisualizeRepairedPolys, nodeidx,
"visrepairedpolys", time, 0);
527 if (
true && ( (
true&&!(((getVisualizeRepairedPolys()==0)))) ) )
528 graph->
evalOpParm(myRepairedPolysColor, nodeidx,
"visrepairedpolysfg", time, 0);
544 template <
typename T>
551 if (idx.
size() != instance.
size()+1)
556 coerceValue(value, myGroup);
559 coerceValue(value, myMaxPasses);
562 coerceValue(value, myRandomSeed);
565 coerceValue(value, myIllFormedAction);
568 coerceValue(value, myManyEdgesAction);
571 coerceValue(value, myNonConvexAction);
574 coerceValue(value, myOverlappingAction);
577 coerceValue(value, myPairOverlaps);
580 coerceValue(value, mySelfIntersectingAction);
583 coerceValue(value, myThickness);
586 coerceValue(value, myGloballySmallAreasAction);
589 coerceValue(value, myGlobalAreaThreshold);
592 coerceValue(value, myLocallySmallAreasAction);
595 coerceValue(value, myLocalAreaThreshold);
598 coerceValue(value, myNonUniformAction);
601 coerceValue(value, myUniformityThreshold);
604 coerceValue(value, myGloballySmallEdgesAction);
607 coerceValue(value, myGlobalEdgeThreshold);
610 coerceValue(value, myLocallySmallEdgesAction);
613 coerceValue(value, myLocalEdgeThreshold);
616 coerceValue(value, myDisconnectedPointsAction);
619 coerceValue(value, myNonManifoldPointsAction);
622 coerceValue(value, myIgnoreWindings);
625 coerceValue(value, myPreferLargeAngles);
628 coerceValue(value, myVisualizeMaxManifold);
631 coerceValue(value, myExportManifoldNumbers);
634 coerceValue(value, myFixWindings);
637 coerceValue(value, myDeleteSmallManifolds);
640 coerceValue(value, mySmallManifoldSize);
643 coerceValue(value, myAddValidPolyAttrib);
646 coerceValue(value, myValidPolyAttribName);
649 coerceValue(value, myAddRepairedPolyAttrib);
652 coerceValue(value, myRepairedPolyAttribName);
655 coerceValue(value, myAddValidPtsAttrib);
658 coerceValue(value, myValidPtsAttribName);
661 coerceValue(value, myAddModifiedPtsAttrib);
664 coerceValue(value, myModifiedPtsAttribName);
667 coerceValue(value, myCreateGroups);
670 coerceValue(value, myVisualizeInvalidPts);
673 coerceValue(value, myInvalidPtsColor);
676 coerceValue(value, myVisualizeRepairedPts);
679 coerceValue(value, myRepairedPtsColor);
682 coerceValue(value, myVisualizeInvalidPolys);
685 coerceValue(value, myInvalidPolysColor);
688 coerceValue(value, myVisualizeRepairedPolys);
691 coerceValue(value, myRepairedPolysColor);
707 { doGetParmValue(idx, instance, value); }
709 { doGetParmValue(idx, instance, value); }
711 { doGetParmValue(idx, instance, value); }
713 { doGetParmValue(idx, instance, value); }
715 { doGetParmValue(idx, instance, value); }
717 { doGetParmValue(idx, instance, value); }
719 { doGetParmValue(idx, instance, value); }
721 { doGetParmValue(idx, instance, value); }
723 { doGetParmValue(idx, instance, value); }
725 { doGetParmValue(idx, instance, value); }
727 { doGetParmValue(idx, instance, value); }
729 template <
typename T>
736 if (idx.
size() != instance.
size()+1)
741 coerceValue(myGroup, ( ( value ) ));
744 coerceValue(myMaxPasses, clampMinValue(1, ( value ) ));
747 coerceValue(myRandomSeed, clampMinValue(1, ( value ) ));
750 coerceValue(myIllFormedAction, clampMinValue(0, clampMaxValue(2, value ) ));
753 coerceValue(myManyEdgesAction, clampMinValue(0, clampMaxValue(2, value ) ));
756 coerceValue(myNonConvexAction, clampMinValue(0, clampMaxValue(2, value ) ));
759 coerceValue(myOverlappingAction, clampMinValue(0, clampMaxValue(2, value ) ));
762 coerceValue(myPairOverlaps, ( ( value ) ));
765 coerceValue(mySelfIntersectingAction, clampMinValue(0, clampMaxValue(2, value ) ));
768 coerceValue(myThickness, clampMinValue(0, ( value ) ));
771 coerceValue(myGloballySmallAreasAction, clampMinValue(0, clampMaxValue(2, value ) ));
774 coerceValue(myGlobalAreaThreshold, clampMinValue(0, ( value ) ));
777 coerceValue(myLocallySmallAreasAction, clampMinValue(0, clampMaxValue(2, value ) ));
780 coerceValue(myLocalAreaThreshold, clampMinValue(0, ( value ) ));
783 coerceValue(myNonUniformAction, clampMinValue(0, clampMaxValue(2, value ) ));
786 coerceValue(myUniformityThreshold, clampMinValue(0, ( value ) ));
789 coerceValue(myGloballySmallEdgesAction, clampMinValue(0, clampMaxValue(2, value ) ));
792 coerceValue(myGlobalEdgeThreshold, clampMinValue(0, ( value ) ));
795 coerceValue(myLocallySmallEdgesAction, clampMinValue(0, clampMaxValue(2, value ) ));
798 coerceValue(myLocalEdgeThreshold, clampMinValue(0, ( value ) ));
801 coerceValue(myDisconnectedPointsAction, clampMinValue(0, clampMaxValue(2, value ) ));
804 coerceValue(myNonManifoldPointsAction, clampMinValue(0, clampMaxValue(2, value ) ));
807 coerceValue(myIgnoreWindings, ( ( value ) ));
810 coerceValue(myPreferLargeAngles, ( ( value ) ));
813 coerceValue(myVisualizeMaxManifold, ( ( value ) ));
816 coerceValue(myExportManifoldNumbers, ( ( value ) ));
819 coerceValue(myFixWindings, ( ( value ) ));
822 coerceValue(myDeleteSmallManifolds, ( ( value ) ));
825 coerceValue(mySmallManifoldSize, ( ( value ) ));
828 coerceValue(myAddValidPolyAttrib, ( ( value ) ));
831 coerceValue(myValidPolyAttribName, ( ( value ) ));
834 coerceValue(myAddRepairedPolyAttrib, ( ( value ) ));
837 coerceValue(myRepairedPolyAttribName, ( ( value ) ));
840 coerceValue(myAddValidPtsAttrib, ( ( value ) ));
843 coerceValue(myValidPtsAttribName, ( ( value ) ));
846 coerceValue(myAddModifiedPtsAttrib, ( ( value ) ));
849 coerceValue(myModifiedPtsAttribName, ( ( value ) ));
852 coerceValue(myCreateGroups, ( ( value ) ));
855 coerceValue(myVisualizeInvalidPts, ( ( value ) ));
858 coerceValue(myInvalidPtsColor, ( ( value ) ));
861 coerceValue(myVisualizeRepairedPts, ( ( value ) ));
864 coerceValue(myRepairedPtsColor, ( ( value ) ));
867 coerceValue(myVisualizeInvalidPolys, ( ( value ) ));
870 coerceValue(myInvalidPolysColor, ( ( value ) ));
873 coerceValue(myVisualizeRepairedPolys, ( ( value ) ));
876 coerceValue(myRepairedPolysColor, ( ( value ) ));
883 { doSetParmValue(idx, instance, value); }
885 { doSetParmValue(idx, instance, value); }
887 { doSetParmValue(idx, instance, value); }
889 { doSetParmValue(idx, instance, value); }
891 { doSetParmValue(idx, instance, value); }
893 { doSetParmValue(idx, instance, value); }
895 { doSetParmValue(idx, instance, value); }
897 { doSetParmValue(idx, instance, value); }
899 { doSetParmValue(idx, instance, value); }
901 { doSetParmValue(idx, instance, value); }
903 { doSetParmValue(idx, instance, value); }
919 if (fieldnum.
size() < 1)
936 return "overlapping";
938 return "pairoverlaps";
944 return "glosmallarea";
946 return "gloareathres";
948 return "locsmallarea";
950 return "locareathres";
956 return "glosmalledge";
958 return "gloedgethres";
960 return "locsmalledge";
962 return "locedgethres";
964 return "disconnectpt";
966 return "nonmanifoldpt";
968 return "ignorewindings";
970 return "preferlargeangles";
972 return "vismaxmanifold";
974 return "exportmanifoldnumbers";
976 return "fixwindings";
978 return "deletesmallmanifolds";
980 return "smallmanifoldsize";
982 return "usevalidpoly";
986 return "userepairedpoly";
988 return "repairedpoly";
990 return "usevalidpts";
994 return "usemodifiedpts";
996 return "modifiedpts";
1000 return "visinvalidpts";
1002 return "visinvalidptsfg";
1004 return "visrepairedpts";
1006 return "visrepairedptsfg";
1008 return "visinvalidpolys";
1010 return "visinvalidpolysfg";
1012 return "visrepairedpolys";
1014 return "visrepairedpolysfg";
1022 if (fieldnum.
size() < 1)
1023 return PARM_UNSUPPORTED;
1024 switch (fieldnum[0])
1029 return PARM_INTEGER;
1031 return PARM_INTEGER;
1033 return PARM_INTEGER;
1035 return PARM_INTEGER;
1037 return PARM_INTEGER;
1039 return PARM_INTEGER;
1041 return PARM_INTEGER;
1043 return PARM_INTEGER;
1047 return PARM_INTEGER;
1051 return PARM_INTEGER;
1055 return PARM_INTEGER;
1059 return PARM_INTEGER;
1063 return PARM_INTEGER;
1067 return PARM_INTEGER;
1069 return PARM_INTEGER;
1071 return PARM_INTEGER;
1073 return PARM_INTEGER;
1075 return PARM_INTEGER;
1077 return PARM_INTEGER;
1079 return PARM_INTEGER;
1081 return PARM_INTEGER;
1083 return PARM_INTEGER;
1085 return PARM_INTEGER;
1089 return PARM_INTEGER;
1093 return PARM_INTEGER;
1097 return PARM_INTEGER;
1101 return PARM_INTEGER;
1103 return PARM_INTEGER;
1105 return PARM_VECTOR3;
1107 return PARM_INTEGER;
1109 return PARM_VECTOR3;
1111 return PARM_INTEGER;
1113 return PARM_VECTOR3;
1115 return PARM_INTEGER;
1117 return PARM_VECTOR3;
1120 return PARM_UNSUPPORTED;
1125 { is.
bread(&v, 1); }
1156 loadData(is, rampdata);
1174 int typelen = colon - data.
buffer();
1186 { UTwrite(os, &v); }
1188 {
int64 iv =
v; UTwrite(os, &iv); }
1190 { UTwrite<fpreal64>(os, &
v); }
1192 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
1194 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1195 UTwrite<fpreal64>(os, &v.
z()); }
1197 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1198 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
1210 if (s) s->save(ostr);
1211 result = ostr.
str();
1212 saveData(os, result);
1219 ostr << s->getDataTypeToken();
1221 s->saveBinary(ostr);
1223 result = ostr.
str();
1224 saveData(os, result);
1232 saveData(os, myGroup);
1233 saveData(os, myMaxPasses);
1234 saveData(os, myRandomSeed);
1235 saveData(os, myIllFormedAction);
1236 saveData(os, myManyEdgesAction);
1237 saveData(os, myNonConvexAction);
1238 saveData(os, myOverlappingAction);
1239 saveData(os, myPairOverlaps);
1240 saveData(os, mySelfIntersectingAction);
1241 saveData(os, myThickness);
1242 saveData(os, myGloballySmallAreasAction);
1243 saveData(os, myGlobalAreaThreshold);
1244 saveData(os, myLocallySmallAreasAction);
1245 saveData(os, myLocalAreaThreshold);
1246 saveData(os, myNonUniformAction);
1247 saveData(os, myUniformityThreshold);
1248 saveData(os, myGloballySmallEdgesAction);
1249 saveData(os, myGlobalEdgeThreshold);
1250 saveData(os, myLocallySmallEdgesAction);
1251 saveData(os, myLocalEdgeThreshold);
1252 saveData(os, myDisconnectedPointsAction);
1253 saveData(os, myNonManifoldPointsAction);
1254 saveData(os, myIgnoreWindings);
1255 saveData(os, myPreferLargeAngles);
1256 saveData(os, myVisualizeMaxManifold);
1257 saveData(os, myExportManifoldNumbers);
1258 saveData(os, myFixWindings);
1259 saveData(os, myDeleteSmallManifolds);
1260 saveData(os, mySmallManifoldSize);
1261 saveData(os, myAddValidPolyAttrib);
1262 saveData(os, myValidPolyAttribName);
1263 saveData(os, myAddRepairedPolyAttrib);
1264 saveData(os, myRepairedPolyAttribName);
1265 saveData(os, myAddValidPtsAttrib);
1266 saveData(os, myValidPtsAttribName);
1267 saveData(os, myAddModifiedPtsAttrib);
1268 saveData(os, myModifiedPtsAttribName);
1269 saveData(os, myCreateGroups);
1270 saveData(os, myVisualizeInvalidPts);
1271 saveData(os, myInvalidPtsColor);
1272 saveData(os, myVisualizeRepairedPts);
1273 saveData(os, myRepairedPtsColor);
1274 saveData(os, myVisualizeInvalidPolys);
1275 saveData(os, myInvalidPolysColor);
1276 saveData(os, myVisualizeRepairedPolys);
1277 saveData(os, myRepairedPolysColor);
1290 loadData(is, myGroup);
1291 loadData(is, myMaxPasses);
1292 loadData(is, myRandomSeed);
1293 loadData(is, myIllFormedAction);
1294 loadData(is, myManyEdgesAction);
1295 loadData(is, myNonConvexAction);
1296 loadData(is, myOverlappingAction);
1297 loadData(is, myPairOverlaps);
1298 loadData(is, mySelfIntersectingAction);
1299 loadData(is, myThickness);
1300 loadData(is, myGloballySmallAreasAction);
1301 loadData(is, myGlobalAreaThreshold);
1302 loadData(is, myLocallySmallAreasAction);
1303 loadData(is, myLocalAreaThreshold);
1304 loadData(is, myNonUniformAction);
1305 loadData(is, myUniformityThreshold);
1306 loadData(is, myGloballySmallEdgesAction);
1307 loadData(is, myGlobalEdgeThreshold);
1308 loadData(is, myLocallySmallEdgesAction);
1309 loadData(is, myLocalEdgeThreshold);
1310 loadData(is, myDisconnectedPointsAction);
1311 loadData(is, myNonManifoldPointsAction);
1312 loadData(is, myIgnoreWindings);
1313 loadData(is, myPreferLargeAngles);
1314 loadData(is, myVisualizeMaxManifold);
1315 loadData(is, myExportManifoldNumbers);
1316 loadData(is, myFixWindings);
1317 loadData(is, myDeleteSmallManifolds);
1318 loadData(is, mySmallManifoldSize);
1319 loadData(is, myAddValidPolyAttrib);
1320 loadData(is, myValidPolyAttribName);
1321 loadData(is, myAddRepairedPolyAttrib);
1322 loadData(is, myRepairedPolyAttribName);
1323 loadData(is, myAddValidPtsAttrib);
1324 loadData(is, myValidPtsAttribName);
1325 loadData(is, myAddModifiedPtsAttrib);
1326 loadData(is, myModifiedPtsAttribName);
1327 loadData(is, myCreateGroups);
1328 loadData(is, myVisualizeInvalidPts);
1329 loadData(is, myInvalidPtsColor);
1330 loadData(is, myVisualizeRepairedPts);
1331 loadData(is, myRepairedPtsColor);
1332 loadData(is, myVisualizeInvalidPolys);
1333 loadData(is, myInvalidPolysColor);
1334 loadData(is, myVisualizeRepairedPolys);
1335 loadData(is, myRepairedPolysColor);
1345 if (!thissop)
return getGroup();
1347 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
1355 if (!thissop)
return getMaxPasses();
1357 OP_Utils::evalOpParm(result, thissop,
"maxpasses", cookparms.
getCookTime(), 0);
1365 if (!thissop)
return getRandomSeed();
1367 OP_Utils::evalOpParm(result, thissop,
"randomseed", cookparms.
getCookTime(), 0);
1375 if (!thissop)
return getIllFormedAction();
1377 OP_Utils::evalOpParm(result, thissop,
"illformed", cookparms.
getCookTime(), 0);
1385 if (!thissop)
return getManyEdgesAction();
1387 OP_Utils::evalOpParm(result, thissop,
"manyedges", cookparms.
getCookTime(), 0);
1395 if (!thissop)
return getNonConvexAction();
1397 OP_Utils::evalOpParm(result, thissop,
"nonconvex", cookparms.
getCookTime(), 0);
1405 if (!thissop)
return getOverlappingAction();
1407 OP_Utils::evalOpParm(result, thissop,
"overlapping", cookparms.
getCookTime(), 0);
1415 if (!thissop)
return getPairOverlaps();
1417 OP_Utils::evalOpParm(result, thissop,
"pairoverlaps", cookparms.
getCookTime(), 0);
1425 if (!thissop)
return getSelfIntersectingAction();
1427 OP_Utils::evalOpParm(result, thissop,
"intersect", cookparms.
getCookTime(), 0);
1435 if (!thissop)
return getThickness();
1437 OP_Utils::evalOpParm(result, thissop,
"thickness", cookparms.
getCookTime(), 0);
1445 if (!thissop)
return getGloballySmallAreasAction();
1447 OP_Utils::evalOpParm(result, thissop,
"glosmallarea", cookparms.
getCookTime(), 0);
1455 if (!thissop)
return getGlobalAreaThreshold();
1457 OP_Utils::evalOpParm(result, thissop,
"gloareathres", cookparms.
getCookTime(), 0);
1465 if (!thissop)
return getLocallySmallAreasAction();
1467 OP_Utils::evalOpParm(result, thissop,
"locsmallarea", cookparms.
getCookTime(), 0);
1475 if (!thissop)
return getLocalAreaThreshold();
1477 OP_Utils::evalOpParm(result, thissop,
"locareathres", cookparms.
getCookTime(), 0);
1485 if (!thissop)
return getNonUniformAction();
1487 OP_Utils::evalOpParm(result, thissop,
"nonuni", cookparms.
getCookTime(), 0);
1495 if (!thissop)
return getUniformityThreshold();
1497 OP_Utils::evalOpParm(result, thissop,
"unithres", cookparms.
getCookTime(), 0);
1505 if (!thissop)
return getGloballySmallEdgesAction();
1507 OP_Utils::evalOpParm(result, thissop,
"glosmalledge", cookparms.
getCookTime(), 0);
1515 if (!thissop)
return getGlobalEdgeThreshold();
1517 OP_Utils::evalOpParm(result, thissop,
"gloedgethres", cookparms.
getCookTime(), 0);
1525 if (!thissop)
return getLocallySmallEdgesAction();
1527 OP_Utils::evalOpParm(result, thissop,
"locsmalledge", cookparms.
getCookTime(), 0);
1535 if (!thissop)
return getLocalEdgeThreshold();
1537 OP_Utils::evalOpParm(result, thissop,
"locedgethres", cookparms.
getCookTime(), 0);
1545 if (!thissop)
return getDisconnectedPointsAction();
1547 OP_Utils::evalOpParm(result, thissop,
"disconnectpt", cookparms.
getCookTime(), 0);
1555 if (!thissop)
return getNonManifoldPointsAction();
1557 OP_Utils::evalOpParm(result, thissop,
"nonmanifoldpt", cookparms.
getCookTime(), 0);
1565 if (!thissop)
return getIgnoreWindings();
1567 OP_Utils::evalOpParm(result, thissop,
"ignorewindings", cookparms.
getCookTime(), 0);
1575 if (!thissop)
return getPreferLargeAngles();
1577 OP_Utils::evalOpParm(result, thissop,
"preferlargeangles", cookparms.
getCookTime(), 0);
1585 if (!thissop)
return getVisualizeMaxManifold();
1587 OP_Utils::evalOpParm(result, thissop,
"vismaxmanifold", cookparms.
getCookTime(), 0);
1595 if (!thissop)
return getExportManifoldNumbers();
1597 OP_Utils::evalOpParm(result, thissop,
"exportmanifoldnumbers", cookparms.
getCookTime(), 0);
1605 if (!thissop)
return getFixWindings();
1607 OP_Utils::evalOpParm(result, thissop,
"fixwindings", cookparms.
getCookTime(), 0);
1615 if (!thissop)
return getDeleteSmallManifolds();
1617 OP_Utils::evalOpParm(result, thissop,
"deletesmallmanifolds", cookparms.
getCookTime(), 0);
1625 if (!thissop)
return getSmallManifoldSize();
1627 OP_Utils::evalOpParm(result, thissop,
"smallmanifoldsize", cookparms.
getCookTime(), 0);
1635 if (!thissop)
return getAddValidPolyAttrib();
1637 OP_Utils::evalOpParm(result, thissop,
"usevalidpoly", cookparms.
getCookTime(), 0);
1645 if (!thissop)
return getValidPolyAttribName();
1647 OP_Utils::evalOpParm(result, thissop,
"validpoly", cookparms.
getCookTime(), 0);
1655 if (!thissop)
return getAddRepairedPolyAttrib();
1657 OP_Utils::evalOpParm(result, thissop,
"userepairedpoly", cookparms.
getCookTime(), 0);
1665 if (!thissop)
return getRepairedPolyAttribName();
1667 OP_Utils::evalOpParm(result, thissop,
"repairedpoly", cookparms.
getCookTime(), 0);
1675 if (!thissop)
return getAddValidPtsAttrib();
1677 OP_Utils::evalOpParm(result, thissop,
"usevalidpts", cookparms.
getCookTime(), 0);
1685 if (!thissop)
return getValidPtsAttribName();
1687 OP_Utils::evalOpParm(result, thissop,
"validpts", cookparms.
getCookTime(), 0);
1695 if (!thissop)
return getAddModifiedPtsAttrib();
1697 OP_Utils::evalOpParm(result, thissop,
"usemodifiedpts", cookparms.
getCookTime(), 0);
1705 if (!thissop)
return getModifiedPtsAttribName();
1707 OP_Utils::evalOpParm(result, thissop,
"modifiedpts", cookparms.
getCookTime(), 0);
1715 if (!thissop)
return getCreateGroups();
1717 OP_Utils::evalOpParm(result, thissop,
"creategrps", cookparms.
getCookTime(), 0);
1725 if (!thissop)
return getVisualizeInvalidPts();
1727 OP_Utils::evalOpParm(result, thissop,
"visinvalidpts", cookparms.
getCookTime(), 0);
1735 if (!thissop)
return getInvalidPtsColor();
1737 OP_Utils::evalOpParm(result, thissop,
"visinvalidptsfg", cookparms.
getCookTime(), 0);
1745 if (!thissop)
return getVisualizeRepairedPts();
1747 OP_Utils::evalOpParm(result, thissop,
"visrepairedpts", cookparms.
getCookTime(), 0);
1755 if (!thissop)
return getRepairedPtsColor();
1757 OP_Utils::evalOpParm(result, thissop,
"visrepairedptsfg", cookparms.
getCookTime(), 0);
1765 if (!thissop)
return getVisualizeInvalidPolys();
1767 OP_Utils::evalOpParm(result, thissop,
"visinvalidpolys", cookparms.
getCookTime(), 0);
1775 if (!thissop)
return getInvalidPolysColor();
1777 OP_Utils::evalOpParm(result, thissop,
"visinvalidpolysfg", cookparms.
getCookTime(), 0);
1785 if (!thissop)
return getVisualizeRepairedPolys();
1787 OP_Utils::evalOpParm(result, thissop,
"visrepairedpolys", cookparms.
getCookTime(), 0);
1795 if (!thissop)
return getRepairedPolysColor();
1797 OP_Utils::evalOpParm(result, thissop,
"visrepairedpolysfg", cookparms.
getCookTime(), 0);
1805 int64 myIllFormedAction;
1806 int64 myManyEdgesAction;
1807 int64 myNonConvexAction;
1808 int64 myOverlappingAction;
1809 bool myPairOverlaps;
1810 int64 mySelfIntersectingAction;
1812 int64 myGloballySmallAreasAction;
1814 int64 myLocallySmallAreasAction;
1816 int64 myNonUniformAction;
1818 int64 myGloballySmallEdgesAction;
1820 int64 myLocallySmallEdgesAction;
1822 int64 myDisconnectedPointsAction;
1823 int64 myNonManifoldPointsAction;
1824 bool myIgnoreWindings;
1825 bool myPreferLargeAngles;
1826 bool myVisualizeMaxManifold;
1827 bool myExportManifoldNumbers;
1829 bool myDeleteSmallManifolds;
1830 int64 mySmallManifoldSize;
1831 bool myAddValidPolyAttrib;
1833 bool myAddRepairedPolyAttrib;
1835 bool myAddValidPtsAttrib;
1837 bool myAddModifiedPtsAttrib;
1839 bool myCreateGroups;
1840 bool myVisualizeInvalidPts;
1842 bool myVisualizeRepairedPts;
1844 bool myVisualizeInvalidPolys;
1846 bool myVisualizeRepairedPolys;
bool getVisualizeInvalidPts() const
UT_StringHolder opModifiedPtsAttribName(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getLocalEdgeThreshold() const
const UT_StringHolder & getValidPolyAttribName() const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
void setRepairedPtsColor(UT_Vector3D val)
const UT_StringHolder & getModifiedPtsAttribName() const
GloballySmallEdgesAction opGloballySmallEdgesAction(const SOP_NodeVerb::CookParms &cookparms) const
ManyEdgesAction opManyEdgesAction(const SOP_NodeVerb::CookParms &cookparms) const
NonUniformAction opNonUniformAction(const SOP_NodeVerb::CookParms &cookparms) const
void setGlobalAreaThreshold(fpreal64 val)
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
SOP_Node * getNode() const
fpreal64 getGlobalEdgeThreshold() const
bool opVisualizeRepairedPts(const SOP_NodeVerb::CookParms &cookparms) const
bool load(UT_IStream &is)
SelfIntersectingAction opSelfIntersectingAction(const SOP_NodeVerb::CookParms &cookparms) const
bool isParmColorRamp(exint idx) const override
void setFixWindings(bool val)
static void loadData(UT_IStream &is, UT_Vector3D &v)
LocallySmallAreasAction getLocallySmallAreasAction() const
const char * getNestParmName(TempIndex fieldnum) const override
int64 opRandomSeed(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Matrix2D v)
fpreal64 opUniformityThreshold(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector4I &v)
fpreal64 opLocalEdgeThreshold(const SOP_NodeVerb::CookParms &cookparms) const
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
bool opVisualizeRepairedPolys(const SOP_NodeVerb::CookParms &cookparms) const
void setVisualizeMaxManifold(bool val)
bool opCreateGroups(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
LocallySmallAreasAction opLocallySmallAreasAction(const SOP_NodeVerb::CookParms &cookparms) const
int64 opMaxPasses(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
void setAddRepairedPolyAttrib(bool val)
void setManyEdgesAction(ManyEdgesAction val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
static void loadData(UT_IStream &is, int64 &v)
const UT_StringHolder & getValidPtsAttribName() const
void setInvalidPtsColor(UT_Vector3D val)
const OP_Context & context() const
static void saveData(std::ostream &os, fpreal64 v)
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
void setSmallManifoldSize(int64 val)
constexpr SYS_FORCE_INLINE T & z() noexcept
static void loadData(UT_IStream &is, UT_Vector2D &v)
void setGlobalEdgeThreshold(fpreal64 val)
SYS_FORCE_INLINE const char * buffer() const
DisconnectedPointsAction opDisconnectedPointsAction(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, bool v)
bool opIgnoreWindings(const SOP_NodeVerb::CookParms &cookparms) const
void setThickness(fpreal64 val)
An output stream object that owns its own string buffer storage.
fpreal64 getGlobalAreaThreshold() const
static void loadData(UT_IStream &is, UT_StringHolder &v)
void setMaxPasses(int64 val)
**But if you need a result
void copyFrom(const OP_NodeParms *src) override
static void loadData(UT_IStream &is, fpreal64 &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
SYS_FORCE_INLINE UT_StringHolder getToken(IllFormedAction enum_value)
void setCreateGroups(bool val)
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
bool getAddValidPtsAttrib() const
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
void setGloballySmallAreasAction(GloballySmallAreasAction val)
bool getVisualizeRepairedPolys() const
GloballySmallAreasAction opGloballySmallAreasAction(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, int64 v)
bool opVisualizeInvalidPts(const SOP_NodeVerb::CookParms &cookparms) const
void setExportManifoldNumbers(bool val)
NonManifoldPointsAction opNonManifoldPointsAction(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & x() noexcept
const UT_StringHolder & getRepairedPolyAttribName() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
void setDeleteSmallManifolds(bool val)
void setVisualizeRepairedPolys(bool val)
void setNonConvexAction(NonConvexAction val)
fpreal64 opGlobalAreaThreshold(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3D getInvalidPtsColor() const
bool opAddModifiedPtsAttrib(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & x() noexcept
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
static void loadData(UT_IStream &is, UT_Vector2I &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
UT_Vector3D getRepairedPolysColor() const
bool opPreferLargeAngles(const SOP_NodeVerb::CookParms &cookparms) const
bool getCreateGroups() const
void setNonManifoldPointsAction(NonManifoldPointsAction val)
bool getExportManifoldNumbers() const
bool opExportManifoldNumbers(const SOP_NodeVerb::CookParms &cookparms) const
bool getAddValidPolyAttrib() const
NonUniformAction getNonUniformAction() const
ParmType getNestParmType(TempIndex fieldnum) const override
bool opDeleteSmallManifolds(const SOP_NodeVerb::CookParms &cookparms) const
void setPreferLargeAngles(bool val)
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & z() noexcept
const OP_GraphProxy * graph() const
void setDisconnectedPointsAction(DisconnectedPointsAction val)
NonManifoldPointsAction getNonManifoldPointsAction() const
void setVisualizeInvalidPolys(bool val)
fpreal64 opGlobalEdgeThreshold(const SOP_NodeVerb::CookParms &cookparms) const
void setUniformityThreshold(fpreal64 val)
static void loadData(UT_IStream &is, UT_Vector4D &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
static void saveData(std::ostream &os, UT_Matrix3D v)
void loadFromOpSubclass(const LoadParms &loadparms) override
NonConvexAction opNonConvexAction(const SOP_NodeVerb::CookParms &cookparms) const
void setValidPolyAttribName(const UT_StringHolder &val)
OverlappingAction opOverlappingAction(const SOP_NodeVerb::CookParms &cookparms) const
bool getVisualizeInvalidPolys() const
fpreal64 getLocalAreaThreshold() const
static void loadData(UT_IStream &is, UT_Vector3I &v)
const UT_StringHolder & getGroup() const
UT_Vector3T< fpreal64 > UT_Vector3D
void setVisualizeRepairedPts(bool val)
void setOverlappingAction(OverlappingAction val)
fpreal64 getThickness() const
bool operator!=(const SOP_PolyDoctorParms &src) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
void setModifiedPtsAttribName(const UT_StringHolder &val)
bool getAddModifiedPtsAttrib() const
bool getVisualizeMaxManifold() const
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
int64 opSmallManifoldSize(const SOP_NodeVerb::CookParms &cookparms) const
IllFormedAction getIllFormedAction() const
void save(std::ostream &os) const
void setAddValidPolyAttrib(bool val)
bool getPreferLargeAngles() const
void setLocallySmallEdgesAction(LocallySmallEdgesAction val)
void saveBinary(std::ostream &os) const
Save string to binary stream.
IllFormedAction opIllFormedAction(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3D getRepairedPtsColor() const
void setLocalAreaThreshold(fpreal64 val)
GT_API const UT_StringHolder version
void setLocallySmallAreasAction(LocallySmallAreasAction val)
bool getPairOverlaps() const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
int64 getMaxPasses() const
static void saveData(std::ostream &os, UT_StringHolder s)
void setAddModifiedPtsAttrib(bool val)
bool opFixWindings(const SOP_NodeVerb::CookParms &cookparms) const
void setVisualizeInvalidPts(bool val)
void setSelfIntersectingAction(SelfIntersectingAction val)
UT_Vector3D getInvalidPolysColor() const
void setGloballySmallEdgesAction(GloballySmallEdgesAction val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
bool getDeleteSmallManifolds() const
static void saveData(std::ostream &os, UT_Vector2D v)
GloballySmallAreasAction getGloballySmallAreasAction() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
void setRepairedPolyAttribName(const UT_StringHolder &val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
fpreal64 opLocalAreaThreshold(const SOP_NodeVerb::CookParms &cookparms) const
int64 getRandomSeed() const
DEP_MicroNode * depnode() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
LeafData & operator=(const LeafData &)=delete
bool getIgnoreWindings() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
Utility class for containing a color ramp.
void setIllFormedAction(IllFormedAction val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
static void loadData(UT_IStream &is, UT_Matrix4D &v)
constexpr SYS_FORCE_INLINE T & w() noexcept
int64 getSmallManifoldSize() const
void setValidPtsAttribName(const UT_StringHolder &val)
static void saveData(std::ostream &os, UT_Vector3D v)
bool getAddRepairedPolyAttrib() const
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
void setNonUniformAction(NonUniformAction val)
static void loadData(UT_IStream &is, UT_Matrix3D &v)
UT_Vector3D opRepairedPolysColor(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3D opInvalidPtsColor(const SOP_NodeVerb::CookParms &cookparms) const
NonConvexAction getNonConvexAction() const
fpreal64 getUniformityThreshold() const
bool getFixWindings() const
void setInvalidPolysColor(UT_Vector3D val)
fpreal getCookTime() const
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
bool opPairOverlaps(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Vector4D v)
bool opVisualizeInvalidPolys(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opValidPtsAttribName(const SOP_NodeVerb::CookParms &cookparms) const
void setPairOverlaps(bool val)
static void loadData(UT_IStream &is, bool &v)
bool operator==(const SOP_PolyDoctorParms &src) const
const char * findChar(int c) const
GloballySmallEdgesAction getGloballySmallEdgesAction() const
void setIgnoreWindings(bool val)
bool opVisualizeMaxManifold(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
LocallySmallEdgesAction opLocallySmallEdgesAction(const SOP_NodeVerb::CookParms &cookparms) const
ManyEdgesAction getManyEdgesAction() const
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
DisconnectedPointsAction getDisconnectedPointsAction() const
UT_Vector3D opInvalidPolysColor(const SOP_NodeVerb::CookParms &cookparms) const
LocallySmallEdgesAction getLocallySmallEdgesAction() const
constexpr SYS_FORCE_INLINE T & y() noexcept
bool getVisualizeRepairedPts() const
fpreal64 opThickness(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Matrix4D v)
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
UT_Vector3D opRepairedPtsColor(const SOP_NodeVerb::CookParms &cookparms) const
void setAddValidPtsAttrib(bool val)
OverlappingAction getOverlappingAction() const
void setRandomSeed(int64 val)
void setRepairedPolysColor(UT_Vector3D val)
static void loadData(UT_IStream &is, UT_Matrix2D &v)
UT_StringHolder opRepairedPolyAttribName(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opValidPolyAttribName(const SOP_NodeVerb::CookParms &cookparms) const
SelfIntersectingAction getSelfIntersectingAction() const
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
exint getNestNumParms(TempIndex idx) const override
void setGroup(const UT_StringHolder &val)
constexpr SYS_FORCE_INLINE T & y() noexcept
bool opAddRepairedPolyAttrib(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE bool isstring() const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
bool opAddValidPtsAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void setLocalEdgeThreshold(fpreal64 val)
constexpr SYS_FORCE_INLINE T & x() noexcept
bool opAddValidPolyAttrib(const SOP_NodeVerb::CookParms &cookparms) const