23 namespace SOP_Tetrahedralize_2_0Enums
35 using namespace UT::Literal;
55 using namespace UT::Literal;
76 using namespace UT::Literal;
96 using namespace UT::Literal;
117 myPieceAttrib =
"name"_UTsh;
123 myOneFacePerTet =
false;
125 myInternAttrib =
true;
128 myMinDihedralAngle = 10;
129 myUseTargetSizeAttrib =
false;
130 myTargetSizeAttrib =
"target_size"_UTsh;
131 myUseUniformMaxSize =
false;
132 myUniformMaxSize = 0.1;
133 myUseMaxSizeAttrib =
false;
134 myMaxSizeAttrib =
"max_size"_UTsh;
135 myUseMaxIter =
false;
137 myUseMaxSteiner =
false;
140 myOptEdgeFace =
true;
141 myOptVtxSmooth =
true;
143 myUseIsectColor =
true;
145 myUseIsectGrp =
true;
146 myIsectPolyGrp =
"intersecting_polygon_grp"_UTsh;
149 myPrecisionTol = 1e-09;
150 myDihedralAngleTol = 1e-05;
152 myUseInvalidColor =
true;
154 myUseInvalidGrp =
true;
155 myInvalidPrimGrp =
"invalid_prim_grp"_UTsh;
168 if (myGroup != src.myGroup)
return false;
169 if (myBatch != src.myBatch)
return false;
170 if (myPieceAttrib != src.myPieceAttrib)
return false;
171 if (myRemove != src.myRemove)
return false;
172 if (myMode != src.myMode)
return false;
173 if (myOutput != src.myOutput)
return false;
174 if (myKeepPrims != src.myKeepPrims)
return false;
175 if (myNoBoundMod != src.myNoBoundMod)
return false;
176 if (myOneFacePerTet != src.myOneFacePerTet)
return false;
177 if (myPropNormal != src.myPropNormal)
return false;
178 if (myInternAttrib != src.myInternAttrib)
return false;
179 if (myUseQuality != src.myUseQuality)
return false;
180 if (myRadEdgeTol != src.myRadEdgeTol)
return false;
181 if (myMinDihedralAngle != src.myMinDihedralAngle)
return false;
182 if (myUseTargetSizeAttrib != src.myUseTargetSizeAttrib)
return false;
183 if (myTargetSizeAttrib != src.myTargetSizeAttrib)
return false;
184 if (myUseUniformMaxSize != src.myUseUniformMaxSize)
return false;
185 if (myUniformMaxSize != src.myUniformMaxSize)
return false;
186 if (myUseMaxSizeAttrib != src.myUseMaxSizeAttrib)
return false;
187 if (myMaxSizeAttrib != src.myMaxSizeAttrib)
return false;
188 if (myUseMaxIter != src.myUseMaxIter)
return false;
189 if (myMaxIter != src.myMaxIter)
return false;
190 if (myUseMaxSteiner != src.myUseMaxSteiner)
return false;
191 if (myMaxSteiner != src.myMaxSteiner)
return false;
192 if (myOptIterations != src.myOptIterations)
return false;
193 if (myOptEdgeFace != src.myOptEdgeFace)
return false;
194 if (myOptVtxSmooth != src.myOptVtxSmooth)
return false;
195 if (myOptVtxMod != src.myOptVtxMod)
return false;
196 if (myUseIsectColor != src.myUseIsectColor)
return false;
197 if (myIsectPolyClr != src.myIsectPolyClr)
return false;
198 if (myUseIsectGrp != src.myUseIsectGrp)
return false;
199 if (myIsectPolyGrp != src.myIsectPolyGrp)
return false;
200 if (myFailures != src.myFailures)
return false;
201 if (myRandomSeed != src.myRandomSeed)
return false;
202 if (myPrecisionTol != src.myPrecisionTol)
return false;
203 if (myDihedralAngleTol != src.myDihedralAngleTol)
return false;
204 if (myMaxAttempts != src.myMaxAttempts)
return false;
205 if (myUseInvalidColor != src.myUseInvalidColor)
return false;
206 if (myInvalidPrimClr != src.myInvalidPrimClr)
return false;
207 if (myUseInvalidGrp != src.myUseInvalidGrp)
return false;
208 if (myInvalidPrimGrp != src.myInvalidPrimGrp)
return false;
230 graph->
evalOpParm(myGroup, nodeidx,
"group", time, graph->
isDirect()?
nullptr:depnode);
233 graph->
evalOpParm(myBatch, nodeidx,
"batch", time, graph->
isDirect()?
nullptr:depnode);
234 myPieceAttrib =
"name"_UTsh;
235 if (
true && ( (
true&&!(((
int64(getBatch())==0)))) ) )
236 graph->
evalOpParm(myPieceAttrib, nodeidx,
"pieceattrib", time, graph->
isDirect()?
nullptr:depnode);
239 graph->
evalOpParm(myRemove, nodeidx,
"remove", time, graph->
isDirect()?
nullptr:depnode);
244 if (
true && ( (
true&&!(((
int64(getMode())==3)))) ) )
245 graph->
evalOpParm(myOutput, nodeidx,
"output", time, graph->
isDirect()?
nullptr:depnode);
247 if (
true && ( (
true&&!(((
int64(getMode())==3)))) ) )
248 graph->
evalOpParm(myKeepPrims, nodeidx,
"keepprims", time, graph->
isDirect()?
nullptr:depnode);
250 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3)))) ) )
251 graph->
evalOpParm(myNoBoundMod, nodeidx,
"noboundmod", time, graph->
isDirect()?
nullptr:depnode);
252 myOneFacePerTet =
false;
253 if (
true && ( (
true&&!(((
int64(getMode())!=0))||((
int64(getOutput())==0))||((
int64(getOutput())==2)))) ) )
254 graph->
evalOpParm(myOneFacePerTet, nodeidx,
"onefacepertet", time, graph->
isDirect()?
nullptr:depnode);
256 if (
true && ( (
true&&!(((
int64(getMode())!=0))||((
int64(getOutput())==0))||((
int64(getOutput())==2)))) ) )
257 graph->
evalOpParm(myPropNormal, nodeidx,
"propnormal", time, graph->
isDirect()?
nullptr:depnode);
258 myInternAttrib =
true;
259 if (
true && ( (
true&&!(((
int64(getMode())!=0))||((
int64(getOutput())==0))||((
int64(getOutput())==2)))) ) )
260 graph->
evalOpParm(myInternAttrib, nodeidx,
"internattrib", time, graph->
isDirect()?
nullptr:depnode);
262 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3)))) ) )
263 graph->
evalOpParm(myUseQuality, nodeidx,
"usequality", time, graph->
isDirect()?
nullptr:depnode);
265 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0)))) ) )
266 graph->
evalOpParm(myRadEdgeTol, nodeidx,
"radedgetol", time, graph->
isDirect()?
nullptr:depnode);
267 myMinDihedralAngle = 10;
268 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0)))) ) )
269 graph->
evalOpParm(myMinDihedralAngle, nodeidx,
"mindihedralang", time, graph->
isDirect()?
nullptr:depnode);
270 myUseTargetSizeAttrib =
false;
271 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0)))) ) )
272 graph->
evalOpParm(myUseTargetSizeAttrib, nodeidx,
"usetargetsizeattrib", time, graph->
isDirect()?
nullptr:depnode);
273 myTargetSizeAttrib =
"target_size"_UTsh;
274 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0))||((getUseTargetSizeAttrib()==0)))) ) )
275 graph->
evalOpParm(myTargetSizeAttrib, nodeidx,
"targetsizeattrib", time, graph->
isDirect()?
nullptr:depnode);
276 myUseUniformMaxSize =
false;
277 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0)))) ) )
278 graph->
evalOpParm(myUseUniformMaxSize, nodeidx,
"useuniformmaxsize", time, graph->
isDirect()?
nullptr:depnode);
279 myUniformMaxSize = 0.1;
280 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0))||((getUseUniformMaxSize()==0)))) ) )
281 graph->
evalOpParm(myUniformMaxSize, nodeidx,
"uniformmaxsize", time, graph->
isDirect()?
nullptr:depnode);
282 myUseMaxSizeAttrib =
false;
283 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0))||((
int64(getMode())!=1)))) ) )
284 graph->
evalOpParm(myUseMaxSizeAttrib, nodeidx,
"usemaxsizeattrib", time, graph->
isDirect()?
nullptr:depnode);
285 myMaxSizeAttrib =
"max_size"_UTsh;
286 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0))||((getUseMaxSizeAttrib()==0))||((
int64(getMode())!=1)))) ) )
287 graph->
evalOpParm(myMaxSizeAttrib, nodeidx,
"maxsizeattrib", time, graph->
isDirect()?
nullptr:depnode);
288 myUseMaxIter =
false;
289 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0)))) ) )
290 graph->
evalOpParm(myUseMaxIter, nodeidx,
"usemaxiter", time, graph->
isDirect()?
nullptr:depnode);
292 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0))||((getUseMaxIter()==0)))) ) )
293 graph->
evalOpParm(myMaxIter, nodeidx,
"maxiter", time, graph->
isDirect()?
nullptr:depnode);
294 myUseMaxSteiner =
false;
295 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0)))) ) )
296 graph->
evalOpParm(myUseMaxSteiner, nodeidx,
"usemaxsteiner", time, graph->
isDirect()?
nullptr:depnode);
298 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0))||((getUseMaxSteiner()==0)))) ) )
299 graph->
evalOpParm(myMaxSteiner, nodeidx,
"maxsteiner", time, graph->
isDirect()?
nullptr:depnode);
301 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3)))) ) )
302 graph->
evalOpParm(myOptIterations, nodeidx,
"optiterations", time, graph->
isDirect()?
nullptr:depnode);
303 myOptEdgeFace =
true;
304 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3)))) ) )
305 graph->
evalOpParm(myOptEdgeFace, nodeidx,
"optedgeface", time, graph->
isDirect()?
nullptr:depnode);
306 myOptVtxSmooth =
true;
307 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3)))) ) )
308 graph->
evalOpParm(myOptVtxSmooth, nodeidx,
"optvtxsmooth", time, graph->
isDirect()?
nullptr:depnode);
310 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3)))) ) )
311 graph->
evalOpParm(myOptVtxMod, nodeidx,
"optvtxmod", time, graph->
isDirect()?
nullptr:depnode);
312 myUseIsectColor =
true;
313 if (
true && ( (
true&&!(((
int64(getMode())!=3)))) ) )
314 graph->
evalOpParm(myUseIsectColor, nodeidx,
"useisectcolor", time, graph->
isDirect()?
nullptr:depnode);
316 if (
true && ( (
true&&!(((getUseIsectColor()==0))||((
int64(getMode())!=3)))) ) )
317 graph->
evalOpParm(myIsectPolyClr, nodeidx,
"isectpolyclr", time, graph->
isDirect()?
nullptr:depnode);
318 myUseIsectGrp =
true;
319 if (
true && ( (
true&&!(((
int64(getMode())!=3)))) ) )
320 graph->
evalOpParm(myUseIsectGrp, nodeidx,
"useisectgrp", time, graph->
isDirect()?
nullptr:depnode);
321 myIsectPolyGrp =
"intersecting_polygon_grp"_UTsh;
322 if (
true && ( (
true&&!(((getUseIsectGrp()==0))||((
int64(getMode())!=3)))) ) )
323 graph->
evalOpParm(myIsectPolyGrp, nodeidx,
"isectpolygrp", time, graph->
isDirect()?
nullptr:depnode);
326 graph->
evalOpParm(myFailures, nodeidx,
"failures", time, graph->
isDirect()?
nullptr:depnode);
329 graph->
evalOpParm(myRandomSeed, nodeidx,
"randomseed", time, graph->
isDirect()?
nullptr:depnode);
330 myPrecisionTol = 1e-09;
332 graph->
evalOpParm(myPrecisionTol, nodeidx,
"precisiontol", time, graph->
isDirect()?
nullptr:depnode);
333 myDihedralAngleTol = 1e-05;
335 graph->
evalOpParm(myDihedralAngleTol, nodeidx,
"dihedralangtol", time, graph->
isDirect()?
nullptr:depnode);
338 graph->
evalOpParm(myMaxAttempts, nodeidx,
"maxattempts", time, graph->
isDirect()?
nullptr:depnode);
339 myUseInvalidColor =
true;
341 graph->
evalOpParm(myUseInvalidColor, nodeidx,
"useinvalidcolor", time, graph->
isDirect()?
nullptr:depnode);
343 if (
true && ( (
true&&!(((getUseInvalidColor()==0)))) ) )
344 graph->
evalOpParm(myInvalidPrimClr, nodeidx,
"invalidprimclr", time, graph->
isDirect()?
nullptr:depnode);
345 myUseInvalidGrp =
true;
347 graph->
evalOpParm(myUseInvalidGrp, nodeidx,
"useinvalidgrp", time, graph->
isDirect()?
nullptr:depnode);
348 myInvalidPrimGrp =
"invalid_prim_grp"_UTsh;
349 if (
true && ( (
true&&!(((getUseInvalidGrp()==0)))) ) )
350 graph->
evalOpParm(myInvalidPrimGrp, nodeidx,
"invalidprimgrp", time, graph->
isDirect()?
nullptr:depnode);
366 template <
typename T>
373 if (idx.
size() != instance.
size()+1)
378 coerceValue(value, myGroup);
381 coerceValue(value, myBatch);
384 coerceValue(value, myPieceAttrib);
387 coerceValue(value, myRemove);
390 coerceValue(value, myMode);
393 coerceValue(value, myOutput);
396 coerceValue(value, myKeepPrims);
399 coerceValue(value, myNoBoundMod);
402 coerceValue(value, myOneFacePerTet);
405 coerceValue(value, myPropNormal);
408 coerceValue(value, myInternAttrib);
411 coerceValue(value, myUseQuality);
414 coerceValue(value, myRadEdgeTol);
417 coerceValue(value, myMinDihedralAngle);
420 coerceValue(value, myUseTargetSizeAttrib);
423 coerceValue(value, myTargetSizeAttrib);
426 coerceValue(value, myUseUniformMaxSize);
429 coerceValue(value, myUniformMaxSize);
432 coerceValue(value, myUseMaxSizeAttrib);
435 coerceValue(value, myMaxSizeAttrib);
438 coerceValue(value, myUseMaxIter);
441 coerceValue(value, myMaxIter);
444 coerceValue(value, myUseMaxSteiner);
447 coerceValue(value, myMaxSteiner);
450 coerceValue(value, myOptIterations);
453 coerceValue(value, myOptEdgeFace);
456 coerceValue(value, myOptVtxSmooth);
459 coerceValue(value, myOptVtxMod);
462 coerceValue(value, myUseIsectColor);
465 coerceValue(value, myIsectPolyClr);
468 coerceValue(value, myUseIsectGrp);
471 coerceValue(value, myIsectPolyGrp);
474 coerceValue(value, myFailures);
477 coerceValue(value, myRandomSeed);
480 coerceValue(value, myPrecisionTol);
483 coerceValue(value, myDihedralAngleTol);
486 coerceValue(value, myMaxAttempts);
489 coerceValue(value, myUseInvalidColor);
492 coerceValue(value, myInvalidPrimClr);
495 coerceValue(value, myUseInvalidGrp);
498 coerceValue(value, myInvalidPrimGrp);
514 { doGetParmValue(idx, instance, value); }
516 { doGetParmValue(idx, instance, value); }
518 { doGetParmValue(idx, instance, value); }
520 { doGetParmValue(idx, instance, value); }
522 { doGetParmValue(idx, instance, value); }
524 { doGetParmValue(idx, instance, value); }
526 { doGetParmValue(idx, instance, value); }
528 { doGetParmValue(idx, instance, value); }
530 { doGetParmValue(idx, instance, value); }
532 { doGetParmValue(idx, instance, value); }
534 { doGetParmValue(idx, instance, value); }
536 template <
typename T>
543 if (idx.
size() != instance.
size()+1)
548 coerceValue(myGroup, ( ( value ) ));
551 coerceValue(myBatch, clampMinValue(0, clampMaxValue(2, value ) ));
554 coerceValue(myPieceAttrib, ( ( value ) ));
557 coerceValue(myRemove, ( ( value ) ));
560 coerceValue(myMode, clampMinValue(0, clampMaxValue(3, value ) ));
563 coerceValue(myOutput, clampMinValue(0, clampMaxValue(3, value ) ));
566 coerceValue(myKeepPrims, ( ( value ) ));
569 coerceValue(myNoBoundMod, ( ( value ) ));
572 coerceValue(myOneFacePerTet, ( ( value ) ));
575 coerceValue(myPropNormal, ( ( value ) ));
578 coerceValue(myInternAttrib, ( ( value ) ));
581 coerceValue(myUseQuality, ( ( value ) ));
584 coerceValue(myRadEdgeTol, clampMinValue(0.612, ( value ) ));
587 coerceValue(myMinDihedralAngle, clampMinValue(0, clampMaxValue(60, value ) ));
590 coerceValue(myUseTargetSizeAttrib, ( ( value ) ));
593 coerceValue(myTargetSizeAttrib, ( ( value ) ));
596 coerceValue(myUseUniformMaxSize, ( ( value ) ));
599 coerceValue(myUniformMaxSize, clampMinValue(0, ( value ) ));
602 coerceValue(myUseMaxSizeAttrib, ( ( value ) ));
605 coerceValue(myMaxSizeAttrib, ( ( value ) ));
608 coerceValue(myUseMaxIter, ( ( value ) ));
611 coerceValue(myMaxIter, ( ( value ) ));
614 coerceValue(myUseMaxSteiner, ( ( value ) ));
617 coerceValue(myMaxSteiner, clampMinValue(0, ( value ) ));
620 coerceValue(myOptIterations, clampMinValue(0, clampMaxValue(9, value ) ));
623 coerceValue(myOptEdgeFace, ( ( value ) ));
626 coerceValue(myOptVtxSmooth, ( ( value ) ));
629 coerceValue(myOptVtxMod, ( ( value ) ));
632 coerceValue(myUseIsectColor, ( ( value ) ));
635 coerceValue(myIsectPolyClr, ( ( value ) ));
638 coerceValue(myUseIsectGrp, ( ( value ) ));
641 coerceValue(myIsectPolyGrp, ( ( value ) ));
644 coerceValue(myFailures, clampMinValue(0, clampMaxValue(2, value ) ));
647 coerceValue(myRandomSeed, clampMinValue(1, ( value ) ));
650 coerceValue(myPrecisionTol, clampMinValue(0, ( value ) ));
653 coerceValue(myDihedralAngleTol, clampMinValue(0, ( value ) ));
656 coerceValue(myMaxAttempts, ( ( value ) ));
659 coerceValue(myUseInvalidColor, ( ( value ) ));
662 coerceValue(myInvalidPrimClr, ( ( value ) ));
665 coerceValue(myUseInvalidGrp, ( ( value ) ));
668 coerceValue(myInvalidPrimGrp, ( ( value ) ));
675 { doSetParmValue(idx, instance, value); }
677 { doSetParmValue(idx, instance, value); }
679 { doSetParmValue(idx, instance, value); }
681 { doSetParmValue(idx, instance, value); }
683 { doSetParmValue(idx, instance, value); }
685 { doSetParmValue(idx, instance, value); }
687 { doSetParmValue(idx, instance, value); }
689 { doSetParmValue(idx, instance, value); }
691 { doSetParmValue(idx, instance, value); }
693 { doSetParmValue(idx, instance, value); }
695 { doSetParmValue(idx, instance, value); }
711 if (fieldnum.
size() < 1)
720 return "pieceattrib";
732 return "onefacepertet";
736 return "internattrib";
742 return "mindihedralang";
744 return "usetargetsizeattrib";
746 return "targetsizeattrib";
748 return "useuniformmaxsize";
750 return "uniformmaxsize";
752 return "usemaxsizeattrib";
754 return "maxsizeattrib";
760 return "usemaxsteiner";
764 return "optiterations";
766 return "optedgeface";
768 return "optvtxsmooth";
772 return "useisectcolor";
774 return "isectpolyclr";
776 return "useisectgrp";
778 return "isectpolygrp";
784 return "precisiontol";
786 return "dihedralangtol";
788 return "maxattempts";
790 return "useinvalidcolor";
792 return "invalidprimclr";
794 return "useinvalidgrp";
796 return "invalidprimgrp";
804 if (fieldnum.
size() < 1)
805 return PARM_UNSUPPORTED;
892 return PARM_UNSUPPORTED;
928 loadData(is, rampdata);
946 int typelen = colon - data.
buffer();
960 {
int64 iv =
v; UTwrite(os, &iv); }
962 { UTwrite<fpreal64>(os, &
v); }
964 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
966 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
967 UTwrite<fpreal64>(os, &v.
z()); }
969 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
970 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
982 if (s) s->save(ostr);
984 saveData(os, result);
991 ostr << s->getDataTypeToken();
996 saveData(os, result);
1004 saveData(os, myGroup);
1005 saveData(os, myBatch);
1006 saveData(os, myPieceAttrib);
1007 saveData(os, myRemove);
1008 saveData(os, myMode);
1009 saveData(os, myOutput);
1010 saveData(os, myKeepPrims);
1011 saveData(os, myNoBoundMod);
1012 saveData(os, myOneFacePerTet);
1013 saveData(os, myPropNormal);
1014 saveData(os, myInternAttrib);
1015 saveData(os, myUseQuality);
1016 saveData(os, myRadEdgeTol);
1017 saveData(os, myMinDihedralAngle);
1018 saveData(os, myUseTargetSizeAttrib);
1019 saveData(os, myTargetSizeAttrib);
1020 saveData(os, myUseUniformMaxSize);
1021 saveData(os, myUniformMaxSize);
1022 saveData(os, myUseMaxSizeAttrib);
1023 saveData(os, myMaxSizeAttrib);
1024 saveData(os, myUseMaxIter);
1025 saveData(os, myMaxIter);
1026 saveData(os, myUseMaxSteiner);
1027 saveData(os, myMaxSteiner);
1028 saveData(os, myOptIterations);
1029 saveData(os, myOptEdgeFace);
1030 saveData(os, myOptVtxSmooth);
1031 saveData(os, myOptVtxMod);
1032 saveData(os, myUseIsectColor);
1033 saveData(os, myIsectPolyClr);
1034 saveData(os, myUseIsectGrp);
1035 saveData(os, myIsectPolyGrp);
1036 saveData(os, myFailures);
1037 saveData(os, myRandomSeed);
1038 saveData(os, myPrecisionTol);
1039 saveData(os, myDihedralAngleTol);
1040 saveData(os, myMaxAttempts);
1041 saveData(os, myUseInvalidColor);
1042 saveData(os, myInvalidPrimClr);
1043 saveData(os, myUseInvalidGrp);
1044 saveData(os, myInvalidPrimGrp);
1057 loadData(is, myGroup);
1058 loadData(is, myBatch);
1059 loadData(is, myPieceAttrib);
1060 loadData(is, myRemove);
1061 loadData(is, myMode);
1062 loadData(is, myOutput);
1063 loadData(is, myKeepPrims);
1064 loadData(is, myNoBoundMod);
1065 loadData(is, myOneFacePerTet);
1066 loadData(is, myPropNormal);
1067 loadData(is, myInternAttrib);
1068 loadData(is, myUseQuality);
1069 loadData(is, myRadEdgeTol);
1070 loadData(is, myMinDihedralAngle);
1071 loadData(is, myUseTargetSizeAttrib);
1072 loadData(is, myTargetSizeAttrib);
1073 loadData(is, myUseUniformMaxSize);
1074 loadData(is, myUniformMaxSize);
1075 loadData(is, myUseMaxSizeAttrib);
1076 loadData(is, myMaxSizeAttrib);
1077 loadData(is, myUseMaxIter);
1078 loadData(is, myMaxIter);
1079 loadData(is, myUseMaxSteiner);
1080 loadData(is, myMaxSteiner);
1081 loadData(is, myOptIterations);
1082 loadData(is, myOptEdgeFace);
1083 loadData(is, myOptVtxSmooth);
1084 loadData(is, myOptVtxMod);
1085 loadData(is, myUseIsectColor);
1086 loadData(is, myIsectPolyClr);
1087 loadData(is, myUseIsectGrp);
1088 loadData(is, myIsectPolyGrp);
1089 loadData(is, myFailures);
1090 loadData(is, myRandomSeed);
1091 loadData(is, myPrecisionTol);
1092 loadData(is, myDihedralAngleTol);
1093 loadData(is, myMaxAttempts);
1094 loadData(is, myUseInvalidColor);
1095 loadData(is, myInvalidPrimClr);
1096 loadData(is, myUseInvalidGrp);
1097 loadData(is, myInvalidPrimGrp);
1107 if (!thissop)
return getGroup();
1109 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
1117 if (!thissop)
return getBatch();
1119 OP_Utils::evalOpParm(result, thissop,
"batch", cookparms.
getCookTime(), 0);
1120 return Batch(result);
1127 if (!thissop)
return getPieceAttrib();
1129 OP_Utils::evalOpParm(result, thissop,
"pieceattrib", cookparms.
getCookTime(), 0);
1137 if (!thissop)
return getRemove();
1139 OP_Utils::evalOpParm(result, thissop,
"remove", cookparms.
getCookTime(), 0);
1147 if (!thissop)
return getMode();
1149 OP_Utils::evalOpParm(result, thissop,
"mode", cookparms.
getCookTime(), 0);
1150 return Mode(result);
1157 if (!thissop)
return getOutput();
1159 OP_Utils::evalOpParm(result, thissop,
"output", cookparms.
getCookTime(), 0);
1167 if (!thissop)
return getKeepPrims();
1169 OP_Utils::evalOpParm(result, thissop,
"keepprims", cookparms.
getCookTime(), 0);
1177 if (!thissop)
return getNoBoundMod();
1179 OP_Utils::evalOpParm(result, thissop,
"noboundmod", cookparms.
getCookTime(), 0);
1187 if (!thissop)
return getOneFacePerTet();
1189 OP_Utils::evalOpParm(result, thissop,
"onefacepertet", cookparms.
getCookTime(), 0);
1197 if (!thissop)
return getPropNormal();
1199 OP_Utils::evalOpParm(result, thissop,
"propnormal", cookparms.
getCookTime(), 0);
1207 if (!thissop)
return getInternAttrib();
1209 OP_Utils::evalOpParm(result, thissop,
"internattrib", cookparms.
getCookTime(), 0);
1217 if (!thissop)
return getUseQuality();
1219 OP_Utils::evalOpParm(result, thissop,
"usequality", cookparms.
getCookTime(), 0);
1227 if (!thissop)
return getRadEdgeTol();
1229 OP_Utils::evalOpParm(result, thissop,
"radedgetol", cookparms.
getCookTime(), 0);
1237 if (!thissop)
return getMinDihedralAngle();
1239 OP_Utils::evalOpParm(result, thissop,
"mindihedralang", cookparms.
getCookTime(), 0);
1247 if (!thissop)
return getUseTargetSizeAttrib();
1249 OP_Utils::evalOpParm(result, thissop,
"usetargetsizeattrib", cookparms.
getCookTime(), 0);
1257 if (!thissop)
return getTargetSizeAttrib();
1259 OP_Utils::evalOpParm(result, thissop,
"targetsizeattrib", cookparms.
getCookTime(), 0);
1267 if (!thissop)
return getUseUniformMaxSize();
1269 OP_Utils::evalOpParm(result, thissop,
"useuniformmaxsize", cookparms.
getCookTime(), 0);
1277 if (!thissop)
return getUniformMaxSize();
1279 OP_Utils::evalOpParm(result, thissop,
"uniformmaxsize", cookparms.
getCookTime(), 0);
1287 if (!thissop)
return getUseMaxSizeAttrib();
1289 OP_Utils::evalOpParm(result, thissop,
"usemaxsizeattrib", cookparms.
getCookTime(), 0);
1297 if (!thissop)
return getMaxSizeAttrib();
1299 OP_Utils::evalOpParm(result, thissop,
"maxsizeattrib", cookparms.
getCookTime(), 0);
1307 if (!thissop)
return getUseMaxIter();
1309 OP_Utils::evalOpParm(result, thissop,
"usemaxiter", cookparms.
getCookTime(), 0);
1317 if (!thissop)
return getMaxIter();
1319 OP_Utils::evalOpParm(result, thissop,
"maxiter", cookparms.
getCookTime(), 0);
1327 if (!thissop)
return getUseMaxSteiner();
1329 OP_Utils::evalOpParm(result, thissop,
"usemaxsteiner", cookparms.
getCookTime(), 0);
1337 if (!thissop)
return getMaxSteiner();
1339 OP_Utils::evalOpParm(result, thissop,
"maxsteiner", cookparms.
getCookTime(), 0);
1347 if (!thissop)
return getOptIterations();
1349 OP_Utils::evalOpParm(result, thissop,
"optiterations", cookparms.
getCookTime(), 0);
1357 if (!thissop)
return getOptEdgeFace();
1359 OP_Utils::evalOpParm(result, thissop,
"optedgeface", cookparms.
getCookTime(), 0);
1367 if (!thissop)
return getOptVtxSmooth();
1369 OP_Utils::evalOpParm(result, thissop,
"optvtxsmooth", cookparms.
getCookTime(), 0);
1377 if (!thissop)
return getOptVtxMod();
1379 OP_Utils::evalOpParm(result, thissop,
"optvtxmod", cookparms.
getCookTime(), 0);
1387 if (!thissop)
return getUseIsectColor();
1389 OP_Utils::evalOpParm(result, thissop,
"useisectcolor", cookparms.
getCookTime(), 0);
1397 if (!thissop)
return getIsectPolyClr();
1399 OP_Utils::evalOpParm(result, thissop,
"isectpolyclr", cookparms.
getCookTime(), 0);
1407 if (!thissop)
return getUseIsectGrp();
1409 OP_Utils::evalOpParm(result, thissop,
"useisectgrp", cookparms.
getCookTime(), 0);
1417 if (!thissop)
return getIsectPolyGrp();
1419 OP_Utils::evalOpParm(result, thissop,
"isectpolygrp", cookparms.
getCookTime(), 0);
1427 if (!thissop)
return getFailures();
1429 OP_Utils::evalOpParm(result, thissop,
"failures", cookparms.
getCookTime(), 0);
1437 if (!thissop)
return getRandomSeed();
1439 OP_Utils::evalOpParm(result, thissop,
"randomseed", cookparms.
getCookTime(), 0);
1447 if (!thissop)
return getPrecisionTol();
1449 OP_Utils::evalOpParm(result, thissop,
"precisiontol", cookparms.
getCookTime(), 0);
1457 if (!thissop)
return getDihedralAngleTol();
1459 OP_Utils::evalOpParm(result, thissop,
"dihedralangtol", cookparms.
getCookTime(), 0);
1467 if (!thissop)
return getMaxAttempts();
1469 OP_Utils::evalOpParm(result, thissop,
"maxattempts", cookparms.
getCookTime(), 0);
1477 if (!thissop)
return getUseInvalidColor();
1479 OP_Utils::evalOpParm(result, thissop,
"useinvalidcolor", cookparms.
getCookTime(), 0);
1487 if (!thissop)
return getInvalidPrimClr();
1489 OP_Utils::evalOpParm(result, thissop,
"invalidprimclr", cookparms.
getCookTime(), 0);
1497 if (!thissop)
return getUseInvalidGrp();
1499 OP_Utils::evalOpParm(result, thissop,
"useinvalidgrp", cookparms.
getCookTime(), 0);
1507 if (!thissop)
return getInvalidPrimGrp();
1509 OP_Utils::evalOpParm(result, thissop,
"invalidprimgrp", cookparms.
getCookTime(), 0);
1522 bool myOneFacePerTet;
1524 bool myInternAttrib;
1528 bool myUseTargetSizeAttrib;
1530 bool myUseUniformMaxSize;
1532 bool myUseMaxSizeAttrib;
1536 bool myUseMaxSteiner;
1538 int64 myOptIterations;
1540 bool myOptVtxSmooth;
1542 bool myUseIsectColor;
1550 int64 myMaxAttempts;
1551 bool myUseInvalidColor;
1553 bool myUseInvalidGrp;
bool getUseMaxSteiner() const
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
bool getUseQuality() const
void loadFromOpSubclass(const LoadParms &loadparms) override
const UT_StringHolder & getTargetSizeAttrib() const
static void saveData(std::ostream &os, UT_Vector3D v)
bool opUseTargetSizeAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void setOutput(Output val)
int64 getRandomSeed() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
void setUseMaxSizeAttrib(bool val)
SOP_Node * getNode() const
static void saveData(std::ostream &os, UT_Matrix4D v)
fpreal64 opUniformMaxSize(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getInvalidPrimGrp() const
UT_Vector3D getIsectPolyClr() const
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
void setOptEdgeFace(bool val)
bool opUseIsectGrp(const SOP_NodeVerb::CookParms &cookparms) const
int64 opMaxIter(const SOP_NodeVerb::CookParms &cookparms) const
void setDihedralAngleTol(fpreal64 val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
static void saveData(std::ostream &os, bool v)
static void loadData(UT_IStream &is, UT_Matrix2D &v)
exint bread(int32 *buffer, exint asize=1)
static void saveData(std::ostream &os, UT_Matrix2D v)
GT_API const UT_StringHolder time
void setIsectPolyClr(UT_Vector3D val)
constexpr SYS_FORCE_INLINE T & y() noexcept
void setRandomSeed(int64 val)
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
bool opOneFacePerTet(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
GLsizei const GLfloat * value
bool opUseIsectColor(const SOP_NodeVerb::CookParms &cookparms) const
int64 opMaxAttempts(const SOP_NodeVerb::CookParms &cookparms) const
void setUseQuality(bool val)
void setUseMaxSteiner(bool val)
int64 getOptIterations() const
const OP_Context & context() const
void setUseInvalidGrp(bool val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
bool getUseIsectColor() const
bool opOptVtxSmooth(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & z() noexcept
void setUseInvalidColor(bool val)
SYS_FORCE_INLINE const char * buffer() const
int64 getMaxSteiner() const
Mode opMode(const SOP_NodeVerb::CookParms &cookparms) const
void setTargetSizeAttrib(const UT_StringHolder &val)
bool getUseInvalidGrp() const
An output stream object that owns its own string buffer storage.
fpreal64 getRadEdgeTol() const
fpreal64 opPrecisionTol(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector3D &v)
void setUseIsectGrp(bool val)
UT_Vector3D getInvalidPrimClr() const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
**But if you need a result
void setUseUniformMaxSize(bool val)
static void saveData(std::ostream &os, UT_Vector4D v)
UT_StringHolder opIsectPolyGrp(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3D opIsectPolyClr(const SOP_NodeVerb::CookParms &cookparms) const
bool getNoBoundMod() const
bool getUseInvalidColor() const
static void loadData(UT_IStream &is, UT_Matrix4D &v)
fpreal64 opDihedralAngleTol(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opRadEdgeTol(const SOP_NodeVerb::CookParms &cookparms) const
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
bool opUseInvalidGrp(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, int64 v)
bool opUseMaxSizeAttrib(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opPieceAttrib(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & x() noexcept
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
SOP_Tetrahedralize_2_0Parms()
SYS_FORCE_INLINE UT_StringHolder getToken(Batch enum_value)
void setMaxSizeAttrib(const UT_StringHolder &val)
const UT_StringHolder & getIsectPolyGrp() const
bool getKeepPrims() const
void setUniformMaxSize(fpreal64 val)
UT_Vector3D opInvalidPrimClr(const SOP_NodeVerb::CookParms &cookparms) const
int64 opRandomSeed(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getPieceAttrib() const
void setGroup(const UT_StringHolder &val)
UT_StringHolder opMaxSizeAttrib(const SOP_NodeVerb::CookParms &cookparms) const
ParmType getNestParmType(TempIndex fieldnum) const override
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
constexpr SYS_FORCE_INLINE T & x() noexcept
void setUseMaxIter(bool val)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
bool load(UT_IStream &is)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
bool opUseInvalidColor(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
bool opUseQuality(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector2I &v)
void setMaxAttempts(int64 val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
static void loadData(UT_IStream &is, int64 &v)
void setMaxIter(int64 val)
void save(std::ostream &os) const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
fpreal64 opMinDihedralAngle(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
exint getNestNumParms(TempIndex idx) const override
void setOptIterations(int64 val)
constexpr SYS_FORCE_INLINE T & z() noexcept
UT_StringHolder opTargetSizeAttrib(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getMaxSizeAttrib() const
bool getUseUniformMaxSize() const
void setFailures(Failures val)
const OP_GraphProxy * graph() const
bool getPropNormal() const
bool opUseUniformMaxSize(const SOP_NodeVerb::CookParms &cookparms) const
bool operator==(const SOP_Tetrahedralize_2_0Parms &src) const
void setPieceAttrib(const UT_StringHolder &val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
static void loadData(UT_IStream &is, UT_Vector3I &v)
void setPropNormal(bool val)
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
bool getOneFacePerTet() const
const char * getNestParmName(TempIndex fieldnum) const override
UT_Vector3T< fpreal64 > UT_Vector3D
bool opOptEdgeFace(const SOP_NodeVerb::CookParms &cookparms) const
Output opOutput(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, fpreal64 v)
UT_StringHolder opInvalidPrimGrp(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void setMinDihedralAngle(fpreal64 val)
void setPrecisionTol(fpreal64 val)
bool opKeepPrims(const SOP_NodeVerb::CookParms &cookparms) const
void setUseTargetSizeAttrib(bool val)
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
void setKeepPrims(bool val)
static void saveData(std::ostream &os, UT_Vector2D v)
void saveBinary(std::ostream &os) const
Save string to binary stream.
bool operator!=(const SOP_Tetrahedralize_2_0Parms &src) const
bool getOptEdgeFace() const
GT_API const UT_StringHolder version
bool opRemove(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, fpreal64 &v)
bool getOptVtxMod() const
bool opOptVtxMod(const SOP_NodeVerb::CookParms &cookparms) const
void setIsectPolyGrp(const UT_StringHolder &val)
fpreal64 getMinDihedralAngle() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
void setMaxSteiner(int64 val)
void setInvalidPrimClr(UT_Vector3D val)
void setOptVtxMod(bool val)
static void saveData(std::ostream &os, UT_StringHolder s)
int64 getMaxAttempts() const
void setUseIsectColor(bool val)
void setInvalidPrimGrp(const UT_StringHolder &val)
DEP_MicroNode * depnode() const
LeafData & operator=(const LeafData &)=delete
bool getUseTargetSizeAttrib() const
void setRadEdgeTol(fpreal64 val)
Utility class for containing a color ramp.
static void loadData(UT_IStream &is, UT_Vector4I &v)
Failures opFailures(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector2D &v)
void setInternAttrib(bool val)
fpreal64 getUniformMaxSize() const
constexpr SYS_FORCE_INLINE T & w() noexcept
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
bool getUseMaxIter() const
static void loadData(UT_IStream &is, UT_Vector4D &v)
bool getUseMaxSizeAttrib() const
bool opPropNormal(const SOP_NodeVerb::CookParms &cookparms) const
virtual UT_StringHolder baseGetSignature() const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
Failures getFailures() const
void setOptVtxSmooth(bool val)
int64 opMaxSteiner(const SOP_NodeVerb::CookParms &cookparms) const
fpreal getCookTime() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
void setOneFacePerTet(bool val)
Batch opBatch(const SOP_NodeVerb::CookParms &cookparms) const
bool opUseMaxIter(const SOP_NodeVerb::CookParms &cookparms) const
bool opInternAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void setNoBoundMod(bool val)
const char * findChar(int c) const
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
bool getOptVtxSmooth() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
bool opUseMaxSteiner(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getGroup() const
int64 opOptIterations(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getDihedralAngleTol() const
static void loadData(UT_IStream &is, bool &v)
constexpr SYS_FORCE_INLINE T & y() noexcept
static void loadData(UT_IStream &is, UT_StringHolder &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
fpreal64 getPrecisionTol() const
bool getUseIsectGrp() const
void copyFrom(const OP_NodeParms *src) override
constexpr SYS_FORCE_INLINE T & y() noexcept
static void loadData(UT_IStream &is, UT_Matrix3D &v)
SYS_FORCE_INLINE bool isstring() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
bool opNoBoundMod(const SOP_NodeVerb::CookParms &cookparms) const
bool isParmColorRamp(exint idx) const override
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
static void saveData(std::ostream &os, UT_Matrix3D v)
constexpr SYS_FORCE_INLINE T & x() noexcept
bool getInternAttrib() const