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;
396 graph->
evalOpParm(myGroup, nodeidx,
"group", time, graph->
isDirect()?
nullptr:depnode);
399 graph->
evalOpParm(myMaxPasses, nodeidx,
"maxpasses", time, graph->
isDirect()?
nullptr:depnode);
402 graph->
evalOpParm(myRandomSeed, nodeidx,
"randomseed", time, graph->
isDirect()?
nullptr:depnode);
403 myIllFormedAction = 2;
405 graph->
evalOpParm(myIllFormedAction, nodeidx,
"illformed", time, graph->
isDirect()?
nullptr:depnode);
406 myManyEdgesAction = 2;
407 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0)))) ) )
408 graph->
evalOpParm(myManyEdgesAction, nodeidx,
"manyedges", time, graph->
isDirect()?
nullptr:depnode);
409 myNonConvexAction = 2;
410 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0))||((
int64(getManyEdgesAction())==0)))) ) )
411 graph->
evalOpParm(myNonConvexAction, nodeidx,
"nonconvex", time, graph->
isDirect()?
nullptr:depnode);
412 myOverlappingAction = 2;
413 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0)))) ) )
414 graph->
evalOpParm(myOverlappingAction, nodeidx,
"overlapping", time, graph->
isDirect()?
nullptr:depnode);
415 myPairOverlaps =
false;
416 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0))||((
int64(getOverlappingAction())==0)))) ) )
417 graph->
evalOpParm(myPairOverlaps, nodeidx,
"pairoverlaps", time, graph->
isDirect()?
nullptr:depnode);
418 mySelfIntersectingAction = 1;
419 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0))||((
int64(getManyEdgesAction())==0))||((
int64(getNonConvexAction())==0)))) ) )
420 graph->
evalOpParm(mySelfIntersectingAction, nodeidx,
"intersect", time, graph->
isDirect()?
nullptr:depnode);
421 myThickness = 0.0001;
422 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0))||((
int64(getManyEdgesAction())==0))||((
int64(getNonConvexAction())==0)))) ) )
423 graph->
evalOpParm(myThickness, nodeidx,
"thickness", time, graph->
isDirect()?
nullptr:depnode);
424 myGloballySmallAreasAction = 0;
425 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0)))) ) )
426 graph->
evalOpParm(myGloballySmallAreasAction, nodeidx,
"glosmallarea", time, graph->
isDirect()?
nullptr:depnode);
427 myGlobalAreaThreshold = 1e-06;
428 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0)))) ) )
429 graph->
evalOpParm(myGlobalAreaThreshold, nodeidx,
"gloareathres", time, graph->
isDirect()?
nullptr:depnode);
430 myLocallySmallAreasAction = 0;
431 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0)))) ) )
432 graph->
evalOpParm(myLocallySmallAreasAction, nodeidx,
"locsmallarea", time, graph->
isDirect()?
nullptr:depnode);
433 myLocalAreaThreshold = 0.01;
434 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0)))) ) )
435 graph->
evalOpParm(myLocalAreaThreshold, nodeidx,
"locareathres", time, graph->
isDirect()?
nullptr:depnode);
436 myNonUniformAction = 0;
437 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0))||((
int64(getManyEdgesAction())==0))||((
int64(getNonConvexAction())==0)))) ) )
438 graph->
evalOpParm(myNonUniformAction, nodeidx,
"nonuni", time, graph->
isDirect()?
nullptr:depnode);
439 myUniformityThreshold = 0.01;
440 if (
true && ( (
true&&!(((
int64(getIllFormedAction())==0))||((
int64(getManyEdgesAction())==0))||((
int64(getNonConvexAction())==0)))) ) )
441 graph->
evalOpParm(myUniformityThreshold, nodeidx,
"unithres", time, graph->
isDirect()?
nullptr:depnode);
442 myGloballySmallEdgesAction = 0;
444 graph->
evalOpParm(myGloballySmallEdgesAction, nodeidx,
"glosmalledge", time, graph->
isDirect()?
nullptr:depnode);
445 myGlobalEdgeThreshold = 0.001;
447 graph->
evalOpParm(myGlobalEdgeThreshold, nodeidx,
"gloedgethres", time, graph->
isDirect()?
nullptr:depnode);
448 myLocallySmallEdgesAction = 0;
450 graph->
evalOpParm(myLocallySmallEdgesAction, nodeidx,
"locsmalledge", time, graph->
isDirect()?
nullptr:depnode);
451 myLocalEdgeThreshold = 0.3;
453 graph->
evalOpParm(myLocalEdgeThreshold, nodeidx,
"locedgethres", time, graph->
isDirect()?
nullptr:depnode);
454 myDisconnectedPointsAction = 0;
456 graph->
evalOpParm(myDisconnectedPointsAction, nodeidx,
"disconnectpt", time, graph->
isDirect()?
nullptr:depnode);
457 myNonManifoldPointsAction = 0;
459 graph->
evalOpParm(myNonManifoldPointsAction, nodeidx,
"nonmanifoldpt", time, graph->
isDirect()?
nullptr:depnode);
460 myIgnoreWindings =
true;
462 graph->
evalOpParm(myIgnoreWindings, nodeidx,
"ignorewindings", time, graph->
isDirect()?
nullptr:depnode);
463 myPreferLargeAngles =
false;
464 if (
true && ( (
true&&!(((
int64(getNonManifoldPointsAction())!=2)))) ) )
465 graph->
evalOpParm(myPreferLargeAngles, nodeidx,
"preferlargeangles", time, graph->
isDirect()?
nullptr:depnode);
466 myVisualizeMaxManifold =
false;
468 graph->
evalOpParm(myVisualizeMaxManifold, nodeidx,
"vismaxmanifold", time, graph->
isDirect()?
nullptr:depnode);
469 myExportManifoldNumbers =
false;
471 graph->
evalOpParm(myExportManifoldNumbers, nodeidx,
"exportmanifoldnumbers", time, graph->
isDirect()?
nullptr:depnode);
472 myFixWindings =
false;
474 graph->
evalOpParm(myFixWindings, nodeidx,
"fixwindings", time, graph->
isDirect()?
nullptr:depnode);
475 myDeleteSmallManifolds =
false;
477 graph->
evalOpParm(myDeleteSmallManifolds, nodeidx,
"deletesmallmanifolds", time, graph->
isDirect()?
nullptr:depnode);
478 mySmallManifoldSize = 0;
479 if (
true && ( (
true&&!(((getDeleteSmallManifolds()==0)))) ) )
480 graph->
evalOpParm(mySmallManifoldSize, nodeidx,
"smallmanifoldsize", time, graph->
isDirect()?
nullptr:depnode);
481 myAddValidPolyAttrib =
true;
483 graph->
evalOpParm(myAddValidPolyAttrib, nodeidx,
"usevalidpoly", time, graph->
isDirect()?
nullptr:depnode);
484 myValidPolyAttribName =
"valid_poly"_UTsh;
486 graph->
evalOpParm(myValidPolyAttribName, nodeidx,
"validpoly", time, graph->
isDirect()?
nullptr:depnode);
487 myAddRepairedPolyAttrib =
true;
489 graph->
evalOpParm(myAddRepairedPolyAttrib, nodeidx,
"userepairedpoly", time, graph->
isDirect()?
nullptr:depnode);
490 myRepairedPolyAttribName =
"repaired_poly"_UTsh;
492 graph->
evalOpParm(myRepairedPolyAttribName, nodeidx,
"repairedpoly", time, graph->
isDirect()?
nullptr:depnode);
493 myAddValidPtsAttrib =
true;
495 graph->
evalOpParm(myAddValidPtsAttrib, nodeidx,
"usevalidpts", time, graph->
isDirect()?
nullptr:depnode);
496 myValidPtsAttribName =
"valid_pt"_UTsh;
498 graph->
evalOpParm(myValidPtsAttribName, nodeidx,
"validpts", time, graph->
isDirect()?
nullptr:depnode);
499 myAddModifiedPtsAttrib =
true;
501 graph->
evalOpParm(myAddModifiedPtsAttrib, nodeidx,
"usemodifiedpts", time, graph->
isDirect()?
nullptr:depnode);
502 myModifiedPtsAttribName =
"modified_pt"_UTsh;
504 graph->
evalOpParm(myModifiedPtsAttribName, nodeidx,
"modifiedpts", time, graph->
isDirect()?
nullptr:depnode);
505 myCreateGroups =
false;
507 graph->
evalOpParm(myCreateGroups, nodeidx,
"creategrps", time, graph->
isDirect()?
nullptr:depnode);
508 myVisualizeInvalidPts =
false;
510 graph->
evalOpParm(myVisualizeInvalidPts, nodeidx,
"visinvalidpts", time, graph->
isDirect()?
nullptr:depnode);
512 if (
true && ( (
true&&!(((getVisualizeInvalidPts()==0)))) ) )
513 graph->
evalOpParm(myInvalidPtsColor, nodeidx,
"visinvalidptsfg", time, graph->
isDirect()?
nullptr:depnode);
514 myVisualizeRepairedPts =
false;
516 graph->
evalOpParm(myVisualizeRepairedPts, nodeidx,
"visrepairedpts", time, graph->
isDirect()?
nullptr:depnode);
518 if (
true && ( (
true&&!(((getVisualizeRepairedPts()==0)))) ) )
519 graph->
evalOpParm(myRepairedPtsColor, nodeidx,
"visrepairedptsfg", time, graph->
isDirect()?
nullptr:depnode);
520 myVisualizeInvalidPolys =
false;
522 graph->
evalOpParm(myVisualizeInvalidPolys, nodeidx,
"visinvalidpolys", time, graph->
isDirect()?
nullptr:depnode);
524 if (
true && ( (
true&&!(((getVisualizeInvalidPolys()==0)))) ) )
525 graph->
evalOpParm(myInvalidPolysColor, nodeidx,
"visinvalidpolysfg", time, graph->
isDirect()?
nullptr:depnode);
526 myVisualizeRepairedPolys =
false;
528 graph->
evalOpParm(myVisualizeRepairedPolys, nodeidx,
"visrepairedpolys", time, graph->
isDirect()?
nullptr:depnode);
530 if (
true && ( (
true&&!(((getVisualizeRepairedPolys()==0)))) ) )
531 graph->
evalOpParm(myRepairedPolysColor, nodeidx,
"visrepairedpolysfg", time, graph->
isDirect()?
nullptr:depnode);
547 template <
typename T>
554 if (idx.
size() != instance.
size()+1)
559 coerceValue(value, myGroup);
562 coerceValue(value, myMaxPasses);
565 coerceValue(value, myRandomSeed);
568 coerceValue(value, myIllFormedAction);
571 coerceValue(value, myManyEdgesAction);
574 coerceValue(value, myNonConvexAction);
577 coerceValue(value, myOverlappingAction);
580 coerceValue(value, myPairOverlaps);
583 coerceValue(value, mySelfIntersectingAction);
586 coerceValue(value, myThickness);
589 coerceValue(value, myGloballySmallAreasAction);
592 coerceValue(value, myGlobalAreaThreshold);
595 coerceValue(value, myLocallySmallAreasAction);
598 coerceValue(value, myLocalAreaThreshold);
601 coerceValue(value, myNonUniformAction);
604 coerceValue(value, myUniformityThreshold);
607 coerceValue(value, myGloballySmallEdgesAction);
610 coerceValue(value, myGlobalEdgeThreshold);
613 coerceValue(value, myLocallySmallEdgesAction);
616 coerceValue(value, myLocalEdgeThreshold);
619 coerceValue(value, myDisconnectedPointsAction);
622 coerceValue(value, myNonManifoldPointsAction);
625 coerceValue(value, myIgnoreWindings);
628 coerceValue(value, myPreferLargeAngles);
631 coerceValue(value, myVisualizeMaxManifold);
634 coerceValue(value, myExportManifoldNumbers);
637 coerceValue(value, myFixWindings);
640 coerceValue(value, myDeleteSmallManifolds);
643 coerceValue(value, mySmallManifoldSize);
646 coerceValue(value, myAddValidPolyAttrib);
649 coerceValue(value, myValidPolyAttribName);
652 coerceValue(value, myAddRepairedPolyAttrib);
655 coerceValue(value, myRepairedPolyAttribName);
658 coerceValue(value, myAddValidPtsAttrib);
661 coerceValue(value, myValidPtsAttribName);
664 coerceValue(value, myAddModifiedPtsAttrib);
667 coerceValue(value, myModifiedPtsAttribName);
670 coerceValue(value, myCreateGroups);
673 coerceValue(value, myVisualizeInvalidPts);
676 coerceValue(value, myInvalidPtsColor);
679 coerceValue(value, myVisualizeRepairedPts);
682 coerceValue(value, myRepairedPtsColor);
685 coerceValue(value, myVisualizeInvalidPolys);
688 coerceValue(value, myInvalidPolysColor);
691 coerceValue(value, myVisualizeRepairedPolys);
694 coerceValue(value, myRepairedPolysColor);
710 { doGetParmValue(idx, instance, value); }
712 { doGetParmValue(idx, instance, value); }
714 { doGetParmValue(idx, instance, value); }
716 { doGetParmValue(idx, instance, value); }
718 { doGetParmValue(idx, instance, value); }
720 { doGetParmValue(idx, instance, value); }
722 { doGetParmValue(idx, instance, value); }
724 { doGetParmValue(idx, instance, value); }
726 { doGetParmValue(idx, instance, value); }
728 { doGetParmValue(idx, instance, value); }
730 { doGetParmValue(idx, instance, value); }
732 template <
typename T>
739 if (idx.
size() != instance.
size()+1)
744 coerceValue(myGroup, ( ( value ) ));
747 coerceValue(myMaxPasses, clampMinValue(1, ( value ) ));
750 coerceValue(myRandomSeed, clampMinValue(1, ( value ) ));
753 coerceValue(myIllFormedAction, clampMinValue(0, clampMaxValue(2, value ) ));
756 coerceValue(myManyEdgesAction, clampMinValue(0, clampMaxValue(2, value ) ));
759 coerceValue(myNonConvexAction, clampMinValue(0, clampMaxValue(2, value ) ));
762 coerceValue(myOverlappingAction, clampMinValue(0, clampMaxValue(2, value ) ));
765 coerceValue(myPairOverlaps, ( ( value ) ));
768 coerceValue(mySelfIntersectingAction, clampMinValue(0, clampMaxValue(2, value ) ));
771 coerceValue(myThickness, clampMinValue(0, ( value ) ));
774 coerceValue(myGloballySmallAreasAction, clampMinValue(0, clampMaxValue(2, value ) ));
777 coerceValue(myGlobalAreaThreshold, clampMinValue(0, ( value ) ));
780 coerceValue(myLocallySmallAreasAction, clampMinValue(0, clampMaxValue(2, value ) ));
783 coerceValue(myLocalAreaThreshold, clampMinValue(0, ( value ) ));
786 coerceValue(myNonUniformAction, clampMinValue(0, clampMaxValue(2, value ) ));
789 coerceValue(myUniformityThreshold, clampMinValue(0, ( value ) ));
792 coerceValue(myGloballySmallEdgesAction, clampMinValue(0, clampMaxValue(2, value ) ));
795 coerceValue(myGlobalEdgeThreshold, clampMinValue(0, ( value ) ));
798 coerceValue(myLocallySmallEdgesAction, clampMinValue(0, clampMaxValue(2, value ) ));
801 coerceValue(myLocalEdgeThreshold, clampMinValue(0, ( value ) ));
804 coerceValue(myDisconnectedPointsAction, clampMinValue(0, clampMaxValue(2, value ) ));
807 coerceValue(myNonManifoldPointsAction, clampMinValue(0, clampMaxValue(2, value ) ));
810 coerceValue(myIgnoreWindings, ( ( value ) ));
813 coerceValue(myPreferLargeAngles, ( ( value ) ));
816 coerceValue(myVisualizeMaxManifold, ( ( value ) ));
819 coerceValue(myExportManifoldNumbers, ( ( value ) ));
822 coerceValue(myFixWindings, ( ( value ) ));
825 coerceValue(myDeleteSmallManifolds, ( ( value ) ));
828 coerceValue(mySmallManifoldSize, ( ( value ) ));
831 coerceValue(myAddValidPolyAttrib, ( ( value ) ));
834 coerceValue(myValidPolyAttribName, ( ( value ) ));
837 coerceValue(myAddRepairedPolyAttrib, ( ( value ) ));
840 coerceValue(myRepairedPolyAttribName, ( ( value ) ));
843 coerceValue(myAddValidPtsAttrib, ( ( value ) ));
846 coerceValue(myValidPtsAttribName, ( ( value ) ));
849 coerceValue(myAddModifiedPtsAttrib, ( ( value ) ));
852 coerceValue(myModifiedPtsAttribName, ( ( value ) ));
855 coerceValue(myCreateGroups, ( ( value ) ));
858 coerceValue(myVisualizeInvalidPts, ( ( value ) ));
861 coerceValue(myInvalidPtsColor, ( ( value ) ));
864 coerceValue(myVisualizeRepairedPts, ( ( value ) ));
867 coerceValue(myRepairedPtsColor, ( ( value ) ));
870 coerceValue(myVisualizeInvalidPolys, ( ( value ) ));
873 coerceValue(myInvalidPolysColor, ( ( value ) ));
876 coerceValue(myVisualizeRepairedPolys, ( ( value ) ));
879 coerceValue(myRepairedPolysColor, ( ( value ) ));
886 { doSetParmValue(idx, instance, value); }
888 { doSetParmValue(idx, instance, value); }
890 { doSetParmValue(idx, instance, value); }
892 { doSetParmValue(idx, instance, value); }
894 { doSetParmValue(idx, instance, value); }
896 { doSetParmValue(idx, instance, value); }
898 { doSetParmValue(idx, instance, value); }
900 { doSetParmValue(idx, instance, value); }
902 { doSetParmValue(idx, instance, value); }
904 { doSetParmValue(idx, instance, value); }
906 { doSetParmValue(idx, instance, value); }
922 if (fieldnum.
size() < 1)
939 return "overlapping";
941 return "pairoverlaps";
947 return "glosmallarea";
949 return "gloareathres";
951 return "locsmallarea";
953 return "locareathres";
959 return "glosmalledge";
961 return "gloedgethres";
963 return "locsmalledge";
965 return "locedgethres";
967 return "disconnectpt";
969 return "nonmanifoldpt";
971 return "ignorewindings";
973 return "preferlargeangles";
975 return "vismaxmanifold";
977 return "exportmanifoldnumbers";
979 return "fixwindings";
981 return "deletesmallmanifolds";
983 return "smallmanifoldsize";
985 return "usevalidpoly";
989 return "userepairedpoly";
991 return "repairedpoly";
993 return "usevalidpts";
997 return "usemodifiedpts";
999 return "modifiedpts";
1001 return "creategrps";
1003 return "visinvalidpts";
1005 return "visinvalidptsfg";
1007 return "visrepairedpts";
1009 return "visrepairedptsfg";
1011 return "visinvalidpolys";
1013 return "visinvalidpolysfg";
1015 return "visrepairedpolys";
1017 return "visrepairedpolysfg";
1025 if (fieldnum.
size() < 1)
1026 return PARM_UNSUPPORTED;
1027 switch (fieldnum[0])
1032 return PARM_INTEGER;
1034 return PARM_INTEGER;
1036 return PARM_INTEGER;
1038 return PARM_INTEGER;
1040 return PARM_INTEGER;
1042 return PARM_INTEGER;
1044 return PARM_INTEGER;
1046 return PARM_INTEGER;
1050 return PARM_INTEGER;
1054 return PARM_INTEGER;
1058 return PARM_INTEGER;
1062 return PARM_INTEGER;
1066 return PARM_INTEGER;
1070 return PARM_INTEGER;
1072 return PARM_INTEGER;
1074 return PARM_INTEGER;
1076 return PARM_INTEGER;
1078 return PARM_INTEGER;
1080 return PARM_INTEGER;
1082 return PARM_INTEGER;
1084 return PARM_INTEGER;
1086 return PARM_INTEGER;
1088 return PARM_INTEGER;
1092 return PARM_INTEGER;
1096 return PARM_INTEGER;
1100 return PARM_INTEGER;
1104 return PARM_INTEGER;
1106 return PARM_INTEGER;
1108 return PARM_VECTOR3;
1110 return PARM_INTEGER;
1112 return PARM_VECTOR3;
1114 return PARM_INTEGER;
1116 return PARM_VECTOR3;
1118 return PARM_INTEGER;
1120 return PARM_VECTOR3;
1123 return PARM_UNSUPPORTED;
1128 { is.
bread(&v, 1); }
1159 loadData(is, rampdata);
1177 int typelen = colon - data.
buffer();
1189 { UTwrite(os, &v); }
1191 {
int64 iv =
v; UTwrite(os, &iv); }
1193 { UTwrite<fpreal64>(os, &
v); }
1195 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
1197 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1198 UTwrite<fpreal64>(os, &v.
z()); }
1200 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1201 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
1213 if (s) s->save(ostr);
1214 result = ostr.
str();
1215 saveData(os, result);
1222 ostr << s->getDataTypeToken();
1224 s->saveBinary(ostr);
1226 result = ostr.
str();
1227 saveData(os, result);
1235 saveData(os, myGroup);
1236 saveData(os, myMaxPasses);
1237 saveData(os, myRandomSeed);
1238 saveData(os, myIllFormedAction);
1239 saveData(os, myManyEdgesAction);
1240 saveData(os, myNonConvexAction);
1241 saveData(os, myOverlappingAction);
1242 saveData(os, myPairOverlaps);
1243 saveData(os, mySelfIntersectingAction);
1244 saveData(os, myThickness);
1245 saveData(os, myGloballySmallAreasAction);
1246 saveData(os, myGlobalAreaThreshold);
1247 saveData(os, myLocallySmallAreasAction);
1248 saveData(os, myLocalAreaThreshold);
1249 saveData(os, myNonUniformAction);
1250 saveData(os, myUniformityThreshold);
1251 saveData(os, myGloballySmallEdgesAction);
1252 saveData(os, myGlobalEdgeThreshold);
1253 saveData(os, myLocallySmallEdgesAction);
1254 saveData(os, myLocalEdgeThreshold);
1255 saveData(os, myDisconnectedPointsAction);
1256 saveData(os, myNonManifoldPointsAction);
1257 saveData(os, myIgnoreWindings);
1258 saveData(os, myPreferLargeAngles);
1259 saveData(os, myVisualizeMaxManifold);
1260 saveData(os, myExportManifoldNumbers);
1261 saveData(os, myFixWindings);
1262 saveData(os, myDeleteSmallManifolds);
1263 saveData(os, mySmallManifoldSize);
1264 saveData(os, myAddValidPolyAttrib);
1265 saveData(os, myValidPolyAttribName);
1266 saveData(os, myAddRepairedPolyAttrib);
1267 saveData(os, myRepairedPolyAttribName);
1268 saveData(os, myAddValidPtsAttrib);
1269 saveData(os, myValidPtsAttribName);
1270 saveData(os, myAddModifiedPtsAttrib);
1271 saveData(os, myModifiedPtsAttribName);
1272 saveData(os, myCreateGroups);
1273 saveData(os, myVisualizeInvalidPts);
1274 saveData(os, myInvalidPtsColor);
1275 saveData(os, myVisualizeRepairedPts);
1276 saveData(os, myRepairedPtsColor);
1277 saveData(os, myVisualizeInvalidPolys);
1278 saveData(os, myInvalidPolysColor);
1279 saveData(os, myVisualizeRepairedPolys);
1280 saveData(os, myRepairedPolysColor);
1293 loadData(is, myGroup);
1294 loadData(is, myMaxPasses);
1295 loadData(is, myRandomSeed);
1296 loadData(is, myIllFormedAction);
1297 loadData(is, myManyEdgesAction);
1298 loadData(is, myNonConvexAction);
1299 loadData(is, myOverlappingAction);
1300 loadData(is, myPairOverlaps);
1301 loadData(is, mySelfIntersectingAction);
1302 loadData(is, myThickness);
1303 loadData(is, myGloballySmallAreasAction);
1304 loadData(is, myGlobalAreaThreshold);
1305 loadData(is, myLocallySmallAreasAction);
1306 loadData(is, myLocalAreaThreshold);
1307 loadData(is, myNonUniformAction);
1308 loadData(is, myUniformityThreshold);
1309 loadData(is, myGloballySmallEdgesAction);
1310 loadData(is, myGlobalEdgeThreshold);
1311 loadData(is, myLocallySmallEdgesAction);
1312 loadData(is, myLocalEdgeThreshold);
1313 loadData(is, myDisconnectedPointsAction);
1314 loadData(is, myNonManifoldPointsAction);
1315 loadData(is, myIgnoreWindings);
1316 loadData(is, myPreferLargeAngles);
1317 loadData(is, myVisualizeMaxManifold);
1318 loadData(is, myExportManifoldNumbers);
1319 loadData(is, myFixWindings);
1320 loadData(is, myDeleteSmallManifolds);
1321 loadData(is, mySmallManifoldSize);
1322 loadData(is, myAddValidPolyAttrib);
1323 loadData(is, myValidPolyAttribName);
1324 loadData(is, myAddRepairedPolyAttrib);
1325 loadData(is, myRepairedPolyAttribName);
1326 loadData(is, myAddValidPtsAttrib);
1327 loadData(is, myValidPtsAttribName);
1328 loadData(is, myAddModifiedPtsAttrib);
1329 loadData(is, myModifiedPtsAttribName);
1330 loadData(is, myCreateGroups);
1331 loadData(is, myVisualizeInvalidPts);
1332 loadData(is, myInvalidPtsColor);
1333 loadData(is, myVisualizeRepairedPts);
1334 loadData(is, myRepairedPtsColor);
1335 loadData(is, myVisualizeInvalidPolys);
1336 loadData(is, myInvalidPolysColor);
1337 loadData(is, myVisualizeRepairedPolys);
1338 loadData(is, myRepairedPolysColor);
1348 if (!thissop)
return getGroup();
1350 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
1358 if (!thissop)
return getMaxPasses();
1360 OP_Utils::evalOpParm(result, thissop,
"maxpasses", cookparms.
getCookTime(), 0);
1368 if (!thissop)
return getRandomSeed();
1370 OP_Utils::evalOpParm(result, thissop,
"randomseed", cookparms.
getCookTime(), 0);
1378 if (!thissop)
return getIllFormedAction();
1380 OP_Utils::evalOpParm(result, thissop,
"illformed", cookparms.
getCookTime(), 0);
1388 if (!thissop)
return getManyEdgesAction();
1390 OP_Utils::evalOpParm(result, thissop,
"manyedges", cookparms.
getCookTime(), 0);
1398 if (!thissop)
return getNonConvexAction();
1400 OP_Utils::evalOpParm(result, thissop,
"nonconvex", cookparms.
getCookTime(), 0);
1408 if (!thissop)
return getOverlappingAction();
1410 OP_Utils::evalOpParm(result, thissop,
"overlapping", cookparms.
getCookTime(), 0);
1418 if (!thissop)
return getPairOverlaps();
1420 OP_Utils::evalOpParm(result, thissop,
"pairoverlaps", cookparms.
getCookTime(), 0);
1428 if (!thissop)
return getSelfIntersectingAction();
1430 OP_Utils::evalOpParm(result, thissop,
"intersect", cookparms.
getCookTime(), 0);
1438 if (!thissop)
return getThickness();
1440 OP_Utils::evalOpParm(result, thissop,
"thickness", cookparms.
getCookTime(), 0);
1448 if (!thissop)
return getGloballySmallAreasAction();
1450 OP_Utils::evalOpParm(result, thissop,
"glosmallarea", cookparms.
getCookTime(), 0);
1458 if (!thissop)
return getGlobalAreaThreshold();
1460 OP_Utils::evalOpParm(result, thissop,
"gloareathres", cookparms.
getCookTime(), 0);
1468 if (!thissop)
return getLocallySmallAreasAction();
1470 OP_Utils::evalOpParm(result, thissop,
"locsmallarea", cookparms.
getCookTime(), 0);
1478 if (!thissop)
return getLocalAreaThreshold();
1480 OP_Utils::evalOpParm(result, thissop,
"locareathres", cookparms.
getCookTime(), 0);
1488 if (!thissop)
return getNonUniformAction();
1490 OP_Utils::evalOpParm(result, thissop,
"nonuni", cookparms.
getCookTime(), 0);
1498 if (!thissop)
return getUniformityThreshold();
1500 OP_Utils::evalOpParm(result, thissop,
"unithres", cookparms.
getCookTime(), 0);
1508 if (!thissop)
return getGloballySmallEdgesAction();
1510 OP_Utils::evalOpParm(result, thissop,
"glosmalledge", cookparms.
getCookTime(), 0);
1518 if (!thissop)
return getGlobalEdgeThreshold();
1520 OP_Utils::evalOpParm(result, thissop,
"gloedgethres", cookparms.
getCookTime(), 0);
1528 if (!thissop)
return getLocallySmallEdgesAction();
1530 OP_Utils::evalOpParm(result, thissop,
"locsmalledge", cookparms.
getCookTime(), 0);
1538 if (!thissop)
return getLocalEdgeThreshold();
1540 OP_Utils::evalOpParm(result, thissop,
"locedgethres", cookparms.
getCookTime(), 0);
1548 if (!thissop)
return getDisconnectedPointsAction();
1550 OP_Utils::evalOpParm(result, thissop,
"disconnectpt", cookparms.
getCookTime(), 0);
1558 if (!thissop)
return getNonManifoldPointsAction();
1560 OP_Utils::evalOpParm(result, thissop,
"nonmanifoldpt", cookparms.
getCookTime(), 0);
1568 if (!thissop)
return getIgnoreWindings();
1570 OP_Utils::evalOpParm(result, thissop,
"ignorewindings", cookparms.
getCookTime(), 0);
1578 if (!thissop)
return getPreferLargeAngles();
1580 OP_Utils::evalOpParm(result, thissop,
"preferlargeangles", cookparms.
getCookTime(), 0);
1588 if (!thissop)
return getVisualizeMaxManifold();
1590 OP_Utils::evalOpParm(result, thissop,
"vismaxmanifold", cookparms.
getCookTime(), 0);
1598 if (!thissop)
return getExportManifoldNumbers();
1600 OP_Utils::evalOpParm(result, thissop,
"exportmanifoldnumbers", cookparms.
getCookTime(), 0);
1608 if (!thissop)
return getFixWindings();
1610 OP_Utils::evalOpParm(result, thissop,
"fixwindings", cookparms.
getCookTime(), 0);
1618 if (!thissop)
return getDeleteSmallManifolds();
1620 OP_Utils::evalOpParm(result, thissop,
"deletesmallmanifolds", cookparms.
getCookTime(), 0);
1628 if (!thissop)
return getSmallManifoldSize();
1630 OP_Utils::evalOpParm(result, thissop,
"smallmanifoldsize", cookparms.
getCookTime(), 0);
1638 if (!thissop)
return getAddValidPolyAttrib();
1640 OP_Utils::evalOpParm(result, thissop,
"usevalidpoly", cookparms.
getCookTime(), 0);
1648 if (!thissop)
return getValidPolyAttribName();
1650 OP_Utils::evalOpParm(result, thissop,
"validpoly", cookparms.
getCookTime(), 0);
1658 if (!thissop)
return getAddRepairedPolyAttrib();
1660 OP_Utils::evalOpParm(result, thissop,
"userepairedpoly", cookparms.
getCookTime(), 0);
1668 if (!thissop)
return getRepairedPolyAttribName();
1670 OP_Utils::evalOpParm(result, thissop,
"repairedpoly", cookparms.
getCookTime(), 0);
1678 if (!thissop)
return getAddValidPtsAttrib();
1680 OP_Utils::evalOpParm(result, thissop,
"usevalidpts", cookparms.
getCookTime(), 0);
1688 if (!thissop)
return getValidPtsAttribName();
1690 OP_Utils::evalOpParm(result, thissop,
"validpts", cookparms.
getCookTime(), 0);
1698 if (!thissop)
return getAddModifiedPtsAttrib();
1700 OP_Utils::evalOpParm(result, thissop,
"usemodifiedpts", cookparms.
getCookTime(), 0);
1708 if (!thissop)
return getModifiedPtsAttribName();
1710 OP_Utils::evalOpParm(result, thissop,
"modifiedpts", cookparms.
getCookTime(), 0);
1718 if (!thissop)
return getCreateGroups();
1720 OP_Utils::evalOpParm(result, thissop,
"creategrps", cookparms.
getCookTime(), 0);
1728 if (!thissop)
return getVisualizeInvalidPts();
1730 OP_Utils::evalOpParm(result, thissop,
"visinvalidpts", cookparms.
getCookTime(), 0);
1738 if (!thissop)
return getInvalidPtsColor();
1740 OP_Utils::evalOpParm(result, thissop,
"visinvalidptsfg", cookparms.
getCookTime(), 0);
1748 if (!thissop)
return getVisualizeRepairedPts();
1750 OP_Utils::evalOpParm(result, thissop,
"visrepairedpts", cookparms.
getCookTime(), 0);
1758 if (!thissop)
return getRepairedPtsColor();
1760 OP_Utils::evalOpParm(result, thissop,
"visrepairedptsfg", cookparms.
getCookTime(), 0);
1768 if (!thissop)
return getVisualizeInvalidPolys();
1770 OP_Utils::evalOpParm(result, thissop,
"visinvalidpolys", cookparms.
getCookTime(), 0);
1778 if (!thissop)
return getInvalidPolysColor();
1780 OP_Utils::evalOpParm(result, thissop,
"visinvalidpolysfg", cookparms.
getCookTime(), 0);
1788 if (!thissop)
return getVisualizeRepairedPolys();
1790 OP_Utils::evalOpParm(result, thissop,
"visrepairedpolys", cookparms.
getCookTime(), 0);
1798 if (!thissop)
return getRepairedPolysColor();
1800 OP_Utils::evalOpParm(result, thissop,
"visrepairedpolysfg", cookparms.
getCookTime(), 0);
1808 int64 myIllFormedAction;
1809 int64 myManyEdgesAction;
1810 int64 myNonConvexAction;
1811 int64 myOverlappingAction;
1812 bool myPairOverlaps;
1813 int64 mySelfIntersectingAction;
1815 int64 myGloballySmallAreasAction;
1817 int64 myLocallySmallAreasAction;
1819 int64 myNonUniformAction;
1821 int64 myGloballySmallEdgesAction;
1823 int64 myLocallySmallEdgesAction;
1825 int64 myDisconnectedPointsAction;
1826 int64 myNonManifoldPointsAction;
1827 bool myIgnoreWindings;
1828 bool myPreferLargeAngles;
1829 bool myVisualizeMaxManifold;
1830 bool myExportManifoldNumbers;
1832 bool myDeleteSmallManifolds;
1833 int64 mySmallManifoldSize;
1834 bool myAddValidPolyAttrib;
1836 bool myAddRepairedPolyAttrib;
1838 bool myAddValidPtsAttrib;
1840 bool myAddModifiedPtsAttrib;
1842 bool myCreateGroups;
1843 bool myVisualizeInvalidPts;
1845 bool myVisualizeRepairedPts;
1847 bool myVisualizeInvalidPolys;
1849 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
GLsizei const GLfloat * value
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
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
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)
virtual UT_StringHolder baseGetSignature() const
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
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
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
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