23 namespace SOP_Tetrahedralize_2_0Enums
63 myPieceAttrib =
"name"_UTsh;
69 myOneFacePerTet =
false;
71 myInternAttrib =
true;
74 myMinDihedralAngle = 10;
75 myUseTargetSizeAttrib =
false;
76 myTargetSizeAttrib =
"target_size"_UTsh;
77 myUseUniformMaxSize =
false;
78 myUniformMaxSize = 0.1;
79 myUseMaxSizeAttrib =
false;
80 myMaxSizeAttrib =
"max_size"_UTsh;
83 myUseMaxSteiner =
false;
87 myOptVtxSmooth =
true;
89 myUseIsectColor =
true;
92 myIsectPolyGrp =
"intersecting_polygon_grp"_UTsh;
95 myPrecisionTol = 1e-09;
96 myDihedralAngleTol = 1e-05;
98 myUseInvalidColor =
true;
100 myUseInvalidGrp =
true;
101 myInvalidPrimGrp =
"invalid_prim_grp"_UTsh;
114 if (myGroup != src.myGroup)
return false;
115 if (myBatch != src.myBatch)
return false;
116 if (myPieceAttrib != src.myPieceAttrib)
return false;
117 if (myRemove != src.myRemove)
return false;
118 if (myMode != src.myMode)
return false;
119 if (myOutput != src.myOutput)
return false;
120 if (myKeepPrims != src.myKeepPrims)
return false;
121 if (myNoBoundMod != src.myNoBoundMod)
return false;
122 if (myOneFacePerTet != src.myOneFacePerTet)
return false;
123 if (myPropNormal != src.myPropNormal)
return false;
124 if (myInternAttrib != src.myInternAttrib)
return false;
125 if (myUseQuality != src.myUseQuality)
return false;
126 if (myRadEdgeTol != src.myRadEdgeTol)
return false;
127 if (myMinDihedralAngle != src.myMinDihedralAngle)
return false;
128 if (myUseTargetSizeAttrib != src.myUseTargetSizeAttrib)
return false;
129 if (myTargetSizeAttrib != src.myTargetSizeAttrib)
return false;
130 if (myUseUniformMaxSize != src.myUseUniformMaxSize)
return false;
131 if (myUniformMaxSize != src.myUniformMaxSize)
return false;
132 if (myUseMaxSizeAttrib != src.myUseMaxSizeAttrib)
return false;
133 if (myMaxSizeAttrib != src.myMaxSizeAttrib)
return false;
134 if (myUseMaxIter != src.myUseMaxIter)
return false;
135 if (myMaxIter != src.myMaxIter)
return false;
136 if (myUseMaxSteiner != src.myUseMaxSteiner)
return false;
137 if (myMaxSteiner != src.myMaxSteiner)
return false;
138 if (myOptIterations != src.myOptIterations)
return false;
139 if (myOptEdgeFace != src.myOptEdgeFace)
return false;
140 if (myOptVtxSmooth != src.myOptVtxSmooth)
return false;
141 if (myOptVtxMod != src.myOptVtxMod)
return false;
142 if (myUseIsectColor != src.myUseIsectColor)
return false;
143 if (myIsectPolyClr != src.myIsectPolyClr)
return false;
144 if (myUseIsectGrp != src.myUseIsectGrp)
return false;
145 if (myIsectPolyGrp != src.myIsectPolyGrp)
return false;
146 if (myFailures != src.myFailures)
return false;
147 if (myRandomSeed != src.myRandomSeed)
return false;
148 if (myPrecisionTol != src.myPrecisionTol)
return false;
149 if (myDihedralAngleTol != src.myDihedralAngleTol)
return false;
150 if (myMaxAttempts != src.myMaxAttempts)
return false;
151 if (myUseInvalidColor != src.myUseInvalidColor)
return false;
152 if (myInvalidPrimClr != src.myInvalidPrimClr)
return false;
153 if (myUseInvalidGrp != src.myUseInvalidGrp)
return false;
154 if (myInvalidPrimGrp != src.myInvalidPrimGrp)
return false;
173 graph->
evalOpParm(myGroup, nodeidx,
"group", time, 0);
176 graph->
evalOpParm(myBatch, nodeidx,
"batch", time, 0);
177 myPieceAttrib =
"name"_UTsh;
178 if (
true && ( (
true&&!(((
int64(getBatch())==0)))) ) )
179 graph->
evalOpParm(myPieceAttrib, nodeidx,
"pieceattrib", time, 0);
182 graph->
evalOpParm(myRemove, nodeidx,
"remove", time, 0);
185 graph->
evalOpParm(myMode, nodeidx,
"mode", time, 0);
187 if (
true && ( (
true&&!(((
int64(getMode())==3)))) ) )
188 graph->
evalOpParm(myOutput, nodeidx,
"output", time, 0);
190 if (
true && ( (
true&&!(((
int64(getMode())==3)))) ) )
191 graph->
evalOpParm(myKeepPrims, nodeidx,
"keepprims", time, 0);
193 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3)))) ) )
194 graph->
evalOpParm(myNoBoundMod, nodeidx,
"noboundmod", time, 0);
195 myOneFacePerTet =
false;
196 if (
true && ( (
true&&!(((
int64(getMode())!=0))||((
int64(getOutput())==0))||((
int64(getOutput())==2)))) ) )
197 graph->
evalOpParm(myOneFacePerTet, nodeidx,
"onefacepertet", time, 0);
199 if (
true && ( (
true&&!(((
int64(getMode())!=0))||((
int64(getOutput())==0))||((
int64(getOutput())==2)))) ) )
200 graph->
evalOpParm(myPropNormal, nodeidx,
"propnormal", time, 0);
201 myInternAttrib =
true;
202 if (
true && ( (
true&&!(((
int64(getMode())!=0))||((
int64(getOutput())==0))||((
int64(getOutput())==2)))) ) )
203 graph->
evalOpParm(myInternAttrib, nodeidx,
"internattrib", time, 0);
205 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3)))) ) )
206 graph->
evalOpParm(myUseQuality, nodeidx,
"usequality", time, 0);
208 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0)))) ) )
209 graph->
evalOpParm(myRadEdgeTol, nodeidx,
"radedgetol", time, 0);
210 myMinDihedralAngle = 10;
211 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0)))) ) )
212 graph->
evalOpParm(myMinDihedralAngle, nodeidx,
"mindihedralang", time, 0);
213 myUseTargetSizeAttrib =
false;
214 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0)))) ) )
215 graph->
evalOpParm(myUseTargetSizeAttrib, nodeidx,
"usetargetsizeattrib", time, 0);
216 myTargetSizeAttrib =
"target_size"_UTsh;
217 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0))||((getUseTargetSizeAttrib()==0)))) ) )
218 graph->
evalOpParm(myTargetSizeAttrib, nodeidx,
"targetsizeattrib", time, 0);
219 myUseUniformMaxSize =
false;
220 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0)))) ) )
221 graph->
evalOpParm(myUseUniformMaxSize, nodeidx,
"useuniformmaxsize", time, 0);
222 myUniformMaxSize = 0.1;
223 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0))||((getUseUniformMaxSize()==0)))) ) )
224 graph->
evalOpParm(myUniformMaxSize, nodeidx,
"uniformmaxsize", time, 0);
225 myUseMaxSizeAttrib =
false;
226 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0))||((
int64(getMode())!=1)))) ) )
227 graph->
evalOpParm(myUseMaxSizeAttrib, nodeidx,
"usemaxsizeattrib", time, 0);
228 myMaxSizeAttrib =
"max_size"_UTsh;
229 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0))||((getUseMaxSizeAttrib()==0))||((
int64(getMode())!=1)))) ) )
230 graph->
evalOpParm(myMaxSizeAttrib, nodeidx,
"maxsizeattrib", time, 0);
231 myUseMaxIter =
false;
232 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0)))) ) )
233 graph->
evalOpParm(myUseMaxIter, nodeidx,
"usemaxiter", time, 0);
235 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0))||((getUseMaxIter()==0)))) ) )
236 graph->
evalOpParm(myMaxIter, nodeidx,
"maxiter", time, 0);
237 myUseMaxSteiner =
false;
238 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0)))) ) )
239 graph->
evalOpParm(myUseMaxSteiner, nodeidx,
"usemaxsteiner", time, 0);
241 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3))||((getUseQuality()==0))||((getUseMaxSteiner()==0)))) ) )
242 graph->
evalOpParm(myMaxSteiner, nodeidx,
"maxsteiner", time, 0);
244 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3)))) ) )
245 graph->
evalOpParm(myOptIterations, nodeidx,
"optiterations", time, 0);
246 myOptEdgeFace =
true;
247 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3)))) ) )
248 graph->
evalOpParm(myOptEdgeFace, nodeidx,
"optedgeface", time, 0);
249 myOptVtxSmooth =
true;
250 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3)))) ) )
251 graph->
evalOpParm(myOptVtxSmooth, nodeidx,
"optvtxsmooth", time, 0);
253 if (
true && ( (
true&&!(((
int64(getMode())==2))||((
int64(getMode())==3)))) ) )
254 graph->
evalOpParm(myOptVtxMod, nodeidx,
"optvtxmod", time, 0);
255 myUseIsectColor =
true;
256 if (
true && ( (
true&&!(((
int64(getMode())!=3)))) ) )
257 graph->
evalOpParm(myUseIsectColor, nodeidx,
"useisectcolor", time, 0);
259 if (
true && ( (
true&&!(((getUseIsectColor()==0))||((
int64(getMode())!=3)))) ) )
260 graph->
evalOpParm(myIsectPolyClr, nodeidx,
"isectpolyclr", time, 0);
261 myUseIsectGrp =
true;
262 if (
true && ( (
true&&!(((
int64(getMode())!=3)))) ) )
263 graph->
evalOpParm(myUseIsectGrp, nodeidx,
"useisectgrp", time, 0);
264 myIsectPolyGrp =
"intersecting_polygon_grp"_UTsh;
265 if (
true && ( (
true&&!(((getUseIsectGrp()==0))||((
int64(getMode())!=3)))) ) )
266 graph->
evalOpParm(myIsectPolyGrp, nodeidx,
"isectpolygrp", time, 0);
269 graph->
evalOpParm(myFailures, nodeidx,
"failures", time, 0);
272 graph->
evalOpParm(myRandomSeed, nodeidx,
"randomseed", time, 0);
273 myPrecisionTol = 1e-09;
275 graph->
evalOpParm(myPrecisionTol, nodeidx,
"precisiontol", time, 0);
276 myDihedralAngleTol = 1e-05;
278 graph->
evalOpParm(myDihedralAngleTol, nodeidx,
"dihedralangtol", time, 0);
281 graph->
evalOpParm(myMaxAttempts, nodeidx,
"maxattempts", time, 0);
282 myUseInvalidColor =
true;
284 graph->
evalOpParm(myUseInvalidColor, nodeidx,
"useinvalidcolor", time, 0);
286 if (
true && ( (
true&&!(((getUseInvalidColor()==0)))) ) )
287 graph->
evalOpParm(myInvalidPrimClr, nodeidx,
"invalidprimclr", time, 0);
288 myUseInvalidGrp =
true;
290 graph->
evalOpParm(myUseInvalidGrp, nodeidx,
"useinvalidgrp", time, 0);
291 myInvalidPrimGrp =
"invalid_prim_grp"_UTsh;
292 if (
true && ( (
true&&!(((getUseInvalidGrp()==0)))) ) )
293 graph->
evalOpParm(myInvalidPrimGrp, nodeidx,
"invalidprimgrp", time, 0);
309 template <
typename T>
316 if (idx.
size() != instance.
size()+1)
457 { doGetParmValue(idx, instance, value); }
459 { doGetParmValue(idx, instance, value); }
461 { doGetParmValue(idx, instance, value); }
463 { doGetParmValue(idx, instance, value); }
465 { doGetParmValue(idx, instance, value); }
467 { doGetParmValue(idx, instance, value); }
469 { doGetParmValue(idx, instance, value); }
471 { doGetParmValue(idx, instance, value); }
473 { doGetParmValue(idx, instance, value); }
475 { doGetParmValue(idx, instance, value); }
477 { doGetParmValue(idx, instance, value); }
479 template <
typename T>
486 if (idx.
size() != instance.
size()+1)
618 { doSetParmValue(idx, instance, value); }
620 { doSetParmValue(idx, instance, value); }
622 { doSetParmValue(idx, instance, value); }
624 { doSetParmValue(idx, instance, value); }
626 { doSetParmValue(idx, instance, value); }
628 { doSetParmValue(idx, instance, value); }
630 { doSetParmValue(idx, instance, value); }
632 { doSetParmValue(idx, instance, value); }
634 { doSetParmValue(idx, instance, value); }
636 { doSetParmValue(idx, instance, value); }
638 { doSetParmValue(idx, instance, value); }
654 if (fieldnum.
size() < 1)
663 return "pieceattrib";
675 return "onefacepertet";
679 return "internattrib";
685 return "mindihedralang";
687 return "usetargetsizeattrib";
689 return "targetsizeattrib";
691 return "useuniformmaxsize";
693 return "uniformmaxsize";
695 return "usemaxsizeattrib";
697 return "maxsizeattrib";
703 return "usemaxsteiner";
707 return "optiterations";
709 return "optedgeface";
711 return "optvtxsmooth";
715 return "useisectcolor";
717 return "isectpolyclr";
719 return "useisectgrp";
721 return "isectpolygrp";
727 return "precisiontol";
729 return "dihedralangtol";
731 return "maxattempts";
733 return "useinvalidcolor";
735 return "invalidprimclr";
737 return "useinvalidgrp";
739 return "invalidprimgrp";
747 if (fieldnum.
size() < 1)
748 return PARM_UNSUPPORTED;
854 {
for (
int r = 0;
r < 2;
r++)
for (
int c = 0; c < 2; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
856 {
for (
int r = 0;
r < 3;
r++)
for (
int c = 0; c < 3; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
858 {
for (
int r = 0;
r < 4;
r++)
for (
int c = 0; c < 4; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
871 loadData(is, rampdata);
889 int typelen = colon - data.
buffer();
903 {
int64 iv =
v; UTwrite(os, &iv); }
905 { UTwrite<fpreal64>(os, &
v); }
907 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
909 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
910 UTwrite<fpreal64>(os, &v.
z()); }
912 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
913 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
925 if (s) s->save(ostr);
927 saveData(os, result);
934 ostr << s->getDataTypeToken();
939 saveData(os, result);
943 void save(std::ostream &os)
const
947 saveData(os, myGroup);
948 saveData(os, myBatch);
949 saveData(os, myPieceAttrib);
950 saveData(os, myRemove);
951 saveData(os, myMode);
952 saveData(os, myOutput);
953 saveData(os, myKeepPrims);
954 saveData(os, myNoBoundMod);
955 saveData(os, myOneFacePerTet);
956 saveData(os, myPropNormal);
957 saveData(os, myInternAttrib);
958 saveData(os, myUseQuality);
959 saveData(os, myRadEdgeTol);
960 saveData(os, myMinDihedralAngle);
961 saveData(os, myUseTargetSizeAttrib);
962 saveData(os, myTargetSizeAttrib);
963 saveData(os, myUseUniformMaxSize);
964 saveData(os, myUniformMaxSize);
965 saveData(os, myUseMaxSizeAttrib);
966 saveData(os, myMaxSizeAttrib);
967 saveData(os, myUseMaxIter);
968 saveData(os, myMaxIter);
969 saveData(os, myUseMaxSteiner);
970 saveData(os, myMaxSteiner);
971 saveData(os, myOptIterations);
972 saveData(os, myOptEdgeFace);
973 saveData(os, myOptVtxSmooth);
974 saveData(os, myOptVtxMod);
975 saveData(os, myUseIsectColor);
976 saveData(os, myIsectPolyClr);
977 saveData(os, myUseIsectGrp);
978 saveData(os, myIsectPolyGrp);
979 saveData(os, myFailures);
980 saveData(os, myRandomSeed);
981 saveData(os, myPrecisionTol);
982 saveData(os, myDihedralAngleTol);
983 saveData(os, myMaxAttempts);
984 saveData(os, myUseInvalidColor);
985 saveData(os, myInvalidPrimClr);
986 saveData(os, myUseInvalidGrp);
987 saveData(os, myInvalidPrimGrp);
1000 loadData(is, myGroup);
1001 loadData(is, myBatch);
1002 loadData(is, myPieceAttrib);
1003 loadData(is, myRemove);
1004 loadData(is, myMode);
1005 loadData(is, myOutput);
1006 loadData(is, myKeepPrims);
1007 loadData(is, myNoBoundMod);
1008 loadData(is, myOneFacePerTet);
1009 loadData(is, myPropNormal);
1010 loadData(is, myInternAttrib);
1011 loadData(is, myUseQuality);
1012 loadData(is, myRadEdgeTol);
1013 loadData(is, myMinDihedralAngle);
1014 loadData(is, myUseTargetSizeAttrib);
1015 loadData(is, myTargetSizeAttrib);
1016 loadData(is, myUseUniformMaxSize);
1017 loadData(is, myUniformMaxSize);
1018 loadData(is, myUseMaxSizeAttrib);
1019 loadData(is, myMaxSizeAttrib);
1020 loadData(is, myUseMaxIter);
1021 loadData(is, myMaxIter);
1022 loadData(is, myUseMaxSteiner);
1023 loadData(is, myMaxSteiner);
1024 loadData(is, myOptIterations);
1025 loadData(is, myOptEdgeFace);
1026 loadData(is, myOptVtxSmooth);
1027 loadData(is, myOptVtxMod);
1028 loadData(is, myUseIsectColor);
1029 loadData(is, myIsectPolyClr);
1030 loadData(is, myUseIsectGrp);
1031 loadData(is, myIsectPolyGrp);
1032 loadData(is, myFailures);
1033 loadData(is, myRandomSeed);
1034 loadData(is, myPrecisionTol);
1035 loadData(is, myDihedralAngleTol);
1036 loadData(is, myMaxAttempts);
1037 loadData(is, myUseInvalidColor);
1038 loadData(is, myInvalidPrimClr);
1039 loadData(is, myUseInvalidGrp);
1040 loadData(is, myInvalidPrimGrp);
1050 if (!thissop)
return getGroup();
1052 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
1060 if (!thissop)
return getBatch();
1062 OP_Utils::evalOpParm(result, thissop,
"batch", cookparms.
getCookTime(), 0);
1063 return Batch(result);
1070 if (!thissop)
return getPieceAttrib();
1072 OP_Utils::evalOpParm(result, thissop,
"pieceattrib", cookparms.
getCookTime(), 0);
1080 if (!thissop)
return getRemove();
1082 OP_Utils::evalOpParm(result, thissop,
"remove", cookparms.
getCookTime(), 0);
1090 if (!thissop)
return getMode();
1092 OP_Utils::evalOpParm(result, thissop,
"mode", cookparms.
getCookTime(), 0);
1093 return Mode(result);
1100 if (!thissop)
return getOutput();
1102 OP_Utils::evalOpParm(result, thissop,
"output", cookparms.
getCookTime(), 0);
1110 if (!thissop)
return getKeepPrims();
1112 OP_Utils::evalOpParm(result, thissop,
"keepprims", cookparms.
getCookTime(), 0);
1120 if (!thissop)
return getNoBoundMod();
1122 OP_Utils::evalOpParm(result, thissop,
"noboundmod", cookparms.
getCookTime(), 0);
1130 if (!thissop)
return getOneFacePerTet();
1132 OP_Utils::evalOpParm(result, thissop,
"onefacepertet", cookparms.
getCookTime(), 0);
1140 if (!thissop)
return getPropNormal();
1142 OP_Utils::evalOpParm(result, thissop,
"propnormal", cookparms.
getCookTime(), 0);
1150 if (!thissop)
return getInternAttrib();
1152 OP_Utils::evalOpParm(result, thissop,
"internattrib", cookparms.
getCookTime(), 0);
1160 if (!thissop)
return getUseQuality();
1162 OP_Utils::evalOpParm(result, thissop,
"usequality", cookparms.
getCookTime(), 0);
1170 if (!thissop)
return getRadEdgeTol();
1172 OP_Utils::evalOpParm(result, thissop,
"radedgetol", cookparms.
getCookTime(), 0);
1180 if (!thissop)
return getMinDihedralAngle();
1182 OP_Utils::evalOpParm(result, thissop,
"mindihedralang", cookparms.
getCookTime(), 0);
1190 if (!thissop)
return getUseTargetSizeAttrib();
1192 OP_Utils::evalOpParm(result, thissop,
"usetargetsizeattrib", cookparms.
getCookTime(), 0);
1200 if (!thissop)
return getTargetSizeAttrib();
1202 OP_Utils::evalOpParm(result, thissop,
"targetsizeattrib", cookparms.
getCookTime(), 0);
1210 if (!thissop)
return getUseUniformMaxSize();
1212 OP_Utils::evalOpParm(result, thissop,
"useuniformmaxsize", cookparms.
getCookTime(), 0);
1220 if (!thissop)
return getUniformMaxSize();
1222 OP_Utils::evalOpParm(result, thissop,
"uniformmaxsize", cookparms.
getCookTime(), 0);
1230 if (!thissop)
return getUseMaxSizeAttrib();
1232 OP_Utils::evalOpParm(result, thissop,
"usemaxsizeattrib", cookparms.
getCookTime(), 0);
1240 if (!thissop)
return getMaxSizeAttrib();
1242 OP_Utils::evalOpParm(result, thissop,
"maxsizeattrib", cookparms.
getCookTime(), 0);
1250 if (!thissop)
return getUseMaxIter();
1252 OP_Utils::evalOpParm(result, thissop,
"usemaxiter", cookparms.
getCookTime(), 0);
1260 if (!thissop)
return getMaxIter();
1262 OP_Utils::evalOpParm(result, thissop,
"maxiter", cookparms.
getCookTime(), 0);
1270 if (!thissop)
return getUseMaxSteiner();
1272 OP_Utils::evalOpParm(result, thissop,
"usemaxsteiner", cookparms.
getCookTime(), 0);
1280 if (!thissop)
return getMaxSteiner();
1282 OP_Utils::evalOpParm(result, thissop,
"maxsteiner", cookparms.
getCookTime(), 0);
1290 if (!thissop)
return getOptIterations();
1292 OP_Utils::evalOpParm(result, thissop,
"optiterations", cookparms.
getCookTime(), 0);
1300 if (!thissop)
return getOptEdgeFace();
1302 OP_Utils::evalOpParm(result, thissop,
"optedgeface", cookparms.
getCookTime(), 0);
1310 if (!thissop)
return getOptVtxSmooth();
1312 OP_Utils::evalOpParm(result, thissop,
"optvtxsmooth", cookparms.
getCookTime(), 0);
1320 if (!thissop)
return getOptVtxMod();
1322 OP_Utils::evalOpParm(result, thissop,
"optvtxmod", cookparms.
getCookTime(), 0);
1330 if (!thissop)
return getUseIsectColor();
1332 OP_Utils::evalOpParm(result, thissop,
"useisectcolor", cookparms.
getCookTime(), 0);
1340 if (!thissop)
return getIsectPolyClr();
1342 OP_Utils::evalOpParm(result, thissop,
"isectpolyclr", cookparms.
getCookTime(), 0);
1350 if (!thissop)
return getUseIsectGrp();
1352 OP_Utils::evalOpParm(result, thissop,
"useisectgrp", cookparms.
getCookTime(), 0);
1360 if (!thissop)
return getIsectPolyGrp();
1362 OP_Utils::evalOpParm(result, thissop,
"isectpolygrp", cookparms.
getCookTime(), 0);
1370 if (!thissop)
return getFailures();
1372 OP_Utils::evalOpParm(result, thissop,
"failures", cookparms.
getCookTime(), 0);
1380 if (!thissop)
return getRandomSeed();
1382 OP_Utils::evalOpParm(result, thissop,
"randomseed", cookparms.
getCookTime(), 0);
1390 if (!thissop)
return getPrecisionTol();
1392 OP_Utils::evalOpParm(result, thissop,
"precisiontol", cookparms.
getCookTime(), 0);
1400 if (!thissop)
return getDihedralAngleTol();
1402 OP_Utils::evalOpParm(result, thissop,
"dihedralangtol", cookparms.
getCookTime(), 0);
1410 if (!thissop)
return getMaxAttempts();
1412 OP_Utils::evalOpParm(result, thissop,
"maxattempts", cookparms.
getCookTime(), 0);
1420 if (!thissop)
return getUseInvalidColor();
1422 OP_Utils::evalOpParm(result, thissop,
"useinvalidcolor", cookparms.
getCookTime(), 0);
1430 if (!thissop)
return getInvalidPrimClr();
1432 OP_Utils::evalOpParm(result, thissop,
"invalidprimclr", cookparms.
getCookTime(), 0);
1440 if (!thissop)
return getUseInvalidGrp();
1442 OP_Utils::evalOpParm(result, thissop,
"useinvalidgrp", cookparms.
getCookTime(), 0);
1450 if (!thissop)
return getInvalidPrimGrp();
1452 OP_Utils::evalOpParm(result, thissop,
"invalidprimgrp", cookparms.
getCookTime(), 0);
1465 bool myOneFacePerTet;
1467 bool myInternAttrib;
1471 bool myUseTargetSizeAttrib;
1473 bool myUseUniformMaxSize;
1475 bool myUseMaxSizeAttrib;
1479 bool myUseMaxSteiner;
1481 int64 myOptIterations;
1483 bool myOptVtxSmooth;
1485 bool myUseIsectColor;
1493 int64 myMaxAttempts;
1494 bool myUseInvalidColor;
1496 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
T clampMaxValue(fpreal maxvalue, const T &src) 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)
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)
T clampMinValue(fpreal minvalue, const T &src) const
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()
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
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 coerceValue(T &result, const S &src) const
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
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
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
fpreal64 getPrecisionTol() const
bool getUseIsectGrp() const
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
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
OP_NodeParms & operator=(const OP_NodeParms &)=default
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