23 namespace SOP_BooleanEnums
34 using namespace UT::Literal;
51 using namespace UT::Literal;
76 using namespace UT::Literal;
102 using namespace UT::Literal;
103 switch (enum_value) {
121 using namespace UT::Literal;
122 switch (enum_value) {
142 using namespace UT::Literal;
143 switch (enum_value) {
163 using namespace UT::Literal;
164 switch (enum_value) {
189 mySubtractChoices = 0;
190 myShatterChoices = 0;
191 myOpenCurvesOnly =
true;
192 myGenerateAASeams =
true;
193 myGenerateBBSeams =
true;
194 myGenerateABSeams =
true;
198 myRemoveInlinePoints =
true;
199 myUniqueSeams =
false;
200 myCorrectNormals =
true;
201 myUseAxAPolys =
false;
202 myAxAPolys =
"axapolys"_UTsh;
203 myUseAxBPolys =
false;
204 myAxBPolys =
"axbpolys"_UTsh;
205 myUseAxAList =
false;
206 myAxAList =
"axalist"_UTsh;
207 myUseAxBList =
false;
208 myAxBList =
"axblist"_UTsh;
209 myCollapseTinyEdges =
true;
210 myLengthThreshold = 0.00001;
212 myAPolys =
"apolys"_UTsh;
213 myUseAInsideB =
false;
214 myAInsideB =
"ainsideb"_UTsh;
215 myUseAOutsideB =
false;
216 myAOutsideB =
"aoutsideb"_UTsh;
218 myBPolys =
"bpolys"_UTsh;
219 myUseBInsideA =
false;
220 myBInsideA =
"binsidea"_UTsh;
221 myUseBOutsideA =
false;
222 myBOutsideA =
"boutsidea"_UTsh;
223 myUseABOverlap =
false;
224 myABOverlap =
"aboverlap"_UTsh;
225 myUseAPieces =
false;
226 myAPieces =
"apieces"_UTsh;
227 myUseBPieces =
false;
228 myBPieces =
"bpieces"_UTsh;
229 myUseABPieces =
false;
230 myABPieces =
"abpieces"_UTsh;
231 myUseReversedPolys =
false;
232 myReversedPolys =
"reversed"_UTsh;
233 myUseAASeamEdges =
false;
234 myAASeamEdges =
"aseams"_UTsh;
235 myUseBBSeamEdges =
false;
236 myBBSeamEdges =
"bseams"_UTsh;
237 myUseABSeamEdges =
false;
238 myABSeamEdges =
"abseams"_UTsh;
253 if (myGroupA != src.myGroupA)
return false;
254 if (myASurface != src.myASurface)
return false;
255 if (myResolveA != src.myResolveA)
return false;
256 if (myGroupB != src.myGroupB)
return false;
257 if (myBSurface != src.myBSurface)
return false;
258 if (myResolveB != src.myResolveB)
return false;
259 if (myBooleanOp != src.myBooleanOp)
return false;
260 if (mySubtractChoices != src.mySubtractChoices)
return false;
261 if (myShatterChoices != src.myShatterChoices)
return false;
262 if (myOpenCurvesOnly != src.myOpenCurvesOnly)
return false;
263 if (myGenerateAASeams != src.myGenerateAASeams)
return false;
264 if (myGenerateBBSeams != src.myGenerateBBSeams)
return false;
265 if (myGenerateABSeams != src.myGenerateABSeams)
return false;
266 if (myWindingOp != src.myWindingOp)
return false;
267 if (myMergeNbrs != src.myMergeNbrs)
return false;
268 if (myDetriangulate != src.myDetriangulate)
return false;
269 if (myRemoveInlinePoints != src.myRemoveInlinePoints)
return false;
270 if (myUniqueSeams != src.myUniqueSeams)
return false;
271 if (myCorrectNormals != src.myCorrectNormals)
return false;
272 if (myUseAxAPolys != src.myUseAxAPolys)
return false;
273 if (myAxAPolys != src.myAxAPolys)
return false;
274 if (myUseAxBPolys != src.myUseAxBPolys)
return false;
275 if (myAxBPolys != src.myAxBPolys)
return false;
276 if (myUseAxAList != src.myUseAxAList)
return false;
277 if (myAxAList != src.myAxAList)
return false;
278 if (myUseAxBList != src.myUseAxBList)
return false;
279 if (myAxBList != src.myAxBList)
return false;
280 if (myCollapseTinyEdges != src.myCollapseTinyEdges)
return false;
281 if (myLengthThreshold != src.myLengthThreshold)
return false;
282 if (myUseAPolys != src.myUseAPolys)
return false;
283 if (myAPolys != src.myAPolys)
return false;
284 if (myUseAInsideB != src.myUseAInsideB)
return false;
285 if (myAInsideB != src.myAInsideB)
return false;
286 if (myUseAOutsideB != src.myUseAOutsideB)
return false;
287 if (myAOutsideB != src.myAOutsideB)
return false;
288 if (myUseBPolys != src.myUseBPolys)
return false;
289 if (myBPolys != src.myBPolys)
return false;
290 if (myUseBInsideA != src.myUseBInsideA)
return false;
291 if (myBInsideA != src.myBInsideA)
return false;
292 if (myUseBOutsideA != src.myUseBOutsideA)
return false;
293 if (myBOutsideA != src.myBOutsideA)
return false;
294 if (myUseABOverlap != src.myUseABOverlap)
return false;
295 if (myABOverlap != src.myABOverlap)
return false;
296 if (myUseAPieces != src.myUseAPieces)
return false;
297 if (myAPieces != src.myAPieces)
return false;
298 if (myUseBPieces != src.myUseBPieces)
return false;
299 if (myBPieces != src.myBPieces)
return false;
300 if (myUseABPieces != src.myUseABPieces)
return false;
301 if (myABPieces != src.myABPieces)
return false;
302 if (myUseReversedPolys != src.myUseReversedPolys)
return false;
303 if (myReversedPolys != src.myReversedPolys)
return false;
304 if (myUseAASeamEdges != src.myUseAASeamEdges)
return false;
305 if (myAASeamEdges != src.myAASeamEdges)
return false;
306 if (myUseBBSeamEdges != src.myUseBBSeamEdges)
return false;
307 if (myBBSeamEdges != src.myBBSeamEdges)
return false;
308 if (myUseABSeamEdges != src.myUseABSeamEdges)
return false;
309 if (myABSeamEdges != src.myABSeamEdges)
return false;
310 if (myDepthInA != src.myDepthInA)
return false;
311 if (myDepthInB != src.myDepthInB)
return false;
333 graph->
evalOpParm(myGroupA, nodeidx,
"agroup", time, 0);
336 graph->
evalOpParm(myASurface, nodeidx,
"asurface", time, 0);
339 graph->
evalOpParm(myResolveA, nodeidx,
"resolvea", time, 0);
342 graph->
evalOpParm(myGroupB, nodeidx,
"bgroup", time, 0);
345 graph->
evalOpParm(myBSurface, nodeidx,
"bsurface", time, 0);
348 graph->
evalOpParm(myResolveB, nodeidx,
"resolveb", time, 0);
351 graph->
evalOpParm(myBooleanOp, nodeidx,
"booleanop", time, 0);
352 mySubtractChoices = 0;
353 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=2)))) ) )
354 graph->
evalOpParm(mySubtractChoices, nodeidx,
"subtractchoices", time, 0);
355 myShatterChoices = 0;
356 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=3)))) ) )
357 graph->
evalOpParm(myShatterChoices, nodeidx,
"shatterchoices", time, 0);
358 myOpenCurvesOnly =
true;
359 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=6)))) ) )
360 graph->
evalOpParm(myOpenCurvesOnly, nodeidx,
"opencurvesonly", time, 0);
361 myGenerateAASeams =
true;
362 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=6)))) ) )
363 graph->
evalOpParm(myGenerateAASeams, nodeidx,
"generateaaseams", time, 0);
364 myGenerateBBSeams =
true;
365 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=6)))) ) )
366 graph->
evalOpParm(myGenerateBBSeams, nodeidx,
"generatebbseams", time, 0);
367 myGenerateABSeams =
true;
368 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=6)))) ) )
369 graph->
evalOpParm(myGenerateABSeams, nodeidx,
"generateabseams", time, 0);
371 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=4)))) ) )
372 graph->
evalOpParm(myWindingOp, nodeidx,
"windingop", time, 0);
374 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=4)))) ) )
375 graph->
evalOpParm(myMergeNbrs, nodeidx,
"mergenbrs", time, 0);
377 if (
true && ( (
true&&!(((
int64(getBooleanOp())==6))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
378 graph->
evalOpParm(myDetriangulate, nodeidx,
"detriangulate", time, 0);
379 myRemoveInlinePoints =
true;
380 if (
true && ( (
true&&!(((
int64(getBooleanOp())==6))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9))||((
int64(getDetriangulate())!=2)))) ) )
381 graph->
evalOpParm(myRemoveInlinePoints, nodeidx,
"removeinlinepoints", time, 0);
382 myUniqueSeams =
false;
383 if (
true && ( (
true&&!(((
int64(getBooleanOp())==6))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
384 graph->
evalOpParm(myUniqueSeams, nodeidx,
"uniqueseams", time, 0);
385 myCorrectNormals =
true;
386 if (
true && ( (
true&&!(((
int64(getBooleanOp())==6))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
387 graph->
evalOpParm(myCorrectNormals, nodeidx,
"correctnormals", time, 0);
388 myUseAxAPolys =
false;
389 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=8)))) ) )
390 graph->
evalOpParm(myUseAxAPolys, nodeidx,
"useaxapolys", time, 0);
391 myAxAPolys =
"axapolys"_UTsh;
392 if (
true && ( (
true&&!(((getUseAxAPolys()==0))||((
int64(getBooleanOp())!=8)))) ) )
393 graph->
evalOpParm(myAxAPolys, nodeidx,
"axapolys", time, 0);
394 myUseAxBPolys =
false;
395 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=8)))) ) )
396 graph->
evalOpParm(myUseAxBPolys, nodeidx,
"useaxbpolys", time, 0);
397 myAxBPolys =
"axbpolys"_UTsh;
398 if (
true && ( (
true&&!(((getUseAxBPolys()==0))||((
int64(getBooleanOp())!=8)))) ) )
399 graph->
evalOpParm(myAxBPolys, nodeidx,
"axbpolys", time, 0);
400 myUseAxAList =
false;
401 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=8)))) ) )
402 graph->
evalOpParm(myUseAxAList, nodeidx,
"useaxalist", time, 0);
403 myAxAList =
"axalist"_UTsh;
404 if (
true && ( (
true&&!(((getUseAxAList()==0))||((
int64(getBooleanOp())!=8)))) ) )
405 graph->
evalOpParm(myAxAList, nodeidx,
"axalist", time, 0);
406 myUseAxBList =
false;
407 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=8)))) ) )
408 graph->
evalOpParm(myUseAxBList, nodeidx,
"useaxblist", time, 0);
409 myAxBList =
"axblist"_UTsh;
410 if (
true && ( (
true&&!(((getUseAxBList()==0))||((
int64(getBooleanOp())!=8)))) ) )
411 graph->
evalOpParm(myAxBList, nodeidx,
"axblist", time, 0);
412 myCollapseTinyEdges =
true;
413 if (
true && ( (
true&&!(((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9))||((
int64(getBooleanOp())==6)))) ) )
414 graph->
evalOpParm(myCollapseTinyEdges, nodeidx,
"collapsetinyedges", time, 0);
415 myLengthThreshold = 0.00001;
416 if (
true && ( (
true&&!(((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9))||((
int64(getBooleanOp())==6))||((getCollapseTinyEdges()==0)))) ) )
417 graph->
evalOpParm(myLengthThreshold, nodeidx,
"lengththreshold", time, 0);
419 if (
true && ( (
true&&!(((
int64(getBooleanOp())==6))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9))||((
int64(getBSurface())==0)))) ) )
420 graph->
evalOpParm(myUseAPolys, nodeidx,
"useapolys", time, 0);
421 myAPolys =
"apolys"_UTsh;
422 if (
true && ( (
true&&!(((
int64(getBSurface())==0))||((getUseAPolys()==0)))) ) )
423 graph->
evalOpParm(myAPolys, nodeidx,
"apolys", time, 0);
424 myUseAInsideB =
false;
425 if (
true && ( (
true&&!(((
int64(getBooleanOp())==6))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9))||((
int64(getBSurface())==1)))) ) )
426 graph->
evalOpParm(myUseAInsideB, nodeidx,
"useainsideb", time, 0);
427 myAInsideB =
"ainsideb"_UTsh;
428 if (
true && ( (
true&&!(((
int64(getBSurface())==1))||((getUseAInsideB()==0)))) ) )
429 graph->
evalOpParm(myAInsideB, nodeidx,
"ainsideb", time, 0);
430 myUseAOutsideB =
false;
431 if (
true && ( (
true&&!(((
int64(getBooleanOp())==6))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9))||((
int64(getBSurface())==1)))) ) )
432 graph->
evalOpParm(myUseAOutsideB, nodeidx,
"useaoutsideb", time, 0);
433 myAOutsideB =
"aoutsideb"_UTsh;
434 if (
true && ( (
true&&!(((
int64(getBSurface())==1))||((getUseAOutsideB()==0)))) ) )
435 graph->
evalOpParm(myAOutsideB, nodeidx,
"aoutsideb", time, 0);
437 if (
true && ( (
true&&!(((
int64(getBooleanOp())==6))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9))||((
int64(getASurface())==0)))) ) )
438 graph->
evalOpParm(myUseBPolys, nodeidx,
"usebpolys", time, 0);
439 myBPolys =
"bpolys"_UTsh;
440 if (
true && ( (
true&&!(((getUseBPolys()==0))||((
int64(getASurface())==0)))) ) )
441 graph->
evalOpParm(myBPolys, nodeidx,
"bpolys", time, 0);
442 myUseBInsideA =
false;
443 if (
true && ( (
true&&!(((
int64(getASurface())==1))||((
int64(getBooleanOp())==6))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
444 graph->
evalOpParm(myUseBInsideA, nodeidx,
"usebinsidea", time, 0);
445 myBInsideA =
"binsidea"_UTsh;
446 if (
true && ( (
true&&!(((
int64(getASurface())==1))||((getUseBInsideA()==0)))) ) )
447 graph->
evalOpParm(myBInsideA, nodeidx,
"binsidea", time, 0);
448 myUseBOutsideA =
false;
449 if (
true && ( (
true&&!(((
int64(getASurface())==1))||((
int64(getBooleanOp())==6))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
450 graph->
evalOpParm(myUseBOutsideA, nodeidx,
"useboutsidea", time, 0);
451 myBOutsideA =
"boutsidea"_UTsh;
452 if (
true && ( (
true&&!(((
int64(getASurface())==1))||((getUseBOutsideA()==0)))) ) )
453 graph->
evalOpParm(myBOutsideA, nodeidx,
"boutsidea", time, 0);
454 myUseABOverlap =
false;
455 if (
true && ( (
true&&!(((
int64(getBooleanOp())==6))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
456 graph->
evalOpParm(myUseABOverlap, nodeidx,
"useaboverlap", time, 0);
457 myABOverlap =
"aboverlap"_UTsh;
458 if (
true && ( (
true&&!(((getUseABOverlap()==0)))) ) )
459 graph->
evalOpParm(myABOverlap, nodeidx,
"aboverlap", time, 0);
460 myUseAPieces =
false;
461 if (
true && ( (
true&&!(((
int64(getASurface())==1))||((
int64(getBooleanOp())!=2)&&(
int64(getBooleanOp())!=3))||((
int64(getBooleanOp())==2)&&(
int64(getSubtractChoices())!=2))||((
int64(getBooleanOp())==3)&&(
int64(getShatterChoices())==1)))) ) )
462 graph->
evalOpParm(myUseAPieces, nodeidx,
"useaonlypieces", time, 0);
463 myAPieces =
"apieces"_UTsh;
464 if (
true && ( (
true&&!(((
int64(getASurface())==1))||((
int64(getBooleanOp())!=2)&&(
int64(getBooleanOp())!=3))||((
int64(getBooleanOp())==2)&&(
int64(getSubtractChoices())!=2))||((
int64(getBooleanOp())==3)&&(
int64(getShatterChoices())==1))||((getUseAPieces()==0)))) ) )
465 graph->
evalOpParm(myAPieces, nodeidx,
"aonlypieces", time, 0);
466 myUseBPieces =
false;
467 if (
true && ( (
true&&!(((
int64(getBSurface())==1))||((
int64(getBooleanOp())!=2)&&(
int64(getBooleanOp())!=3))||((
int64(getBooleanOp())==2)&&(
int64(getSubtractChoices())!=2))||((
int64(getBooleanOp())==3)&&(
int64(getShatterChoices())==0)))) ) )
468 graph->
evalOpParm(myUseBPieces, nodeidx,
"usebonlypieces", time, 0);
469 myBPieces =
"bpieces"_UTsh;
470 if (
true && ( (
true&&!(((
int64(getBSurface())==1))||((
int64(getBooleanOp())!=2)&&(
int64(getBooleanOp())!=3))||((
int64(getBooleanOp())==2)&&(
int64(getSubtractChoices())!=2))||((
int64(getBooleanOp())==3)&&(
int64(getShatterChoices())==0))||((getUseBPieces()==0)))) ) )
471 graph->
evalOpParm(myBPieces, nodeidx,
"bonlypieces", time, 0);
472 myUseABPieces =
false;
473 if (
true && ( (
true&&!(((
int64(getBSurface())==1)&&(
int64(getASurface())==1))||((
int64(getBooleanOp())!=3)))) ) )
474 graph->
evalOpParm(myUseABPieces, nodeidx,
"useabpieces", time, 0);
475 myABPieces =
"abpieces"_UTsh;
476 if (
true && ( (
true&&!(((
int64(getBSurface())==1)&&(
int64(getASurface())==1))||((
int64(getBooleanOp())!=3))||((getUseABPieces()==0)))) ) )
477 graph->
evalOpParm(myABPieces, nodeidx,
"abpieces", time, 0);
478 myUseReversedPolys =
false;
479 if (
true && ( (
true&&!(((
int64(getBSurface())==1)&&(
int64(getASurface())==1))||((
int64(getBooleanOp())!=3)&&(
int64(getBooleanOp())!=2)))) ) )
480 graph->
evalOpParm(myUseReversedPolys, nodeidx,
"usereversedpolys", time, 0);
481 myReversedPolys =
"reversed"_UTsh;
482 if (
true && ( (
true&&!(((
int64(getBSurface())==1)&&(
int64(getASurface())==1))||((
int64(getBooleanOp())!=3)&&(
int64(getBooleanOp())!=2))||((getUseReversedPolys()==0)))) ) )
483 graph->
evalOpParm(myReversedPolys, nodeidx,
"reversedpolys", time, 0);
484 myUseAASeamEdges =
false;
485 if (
true && ( (
true&&!(((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
486 graph->
evalOpParm(myUseAASeamEdges, nodeidx,
"useaaseamedges", time, 0);
487 myAASeamEdges =
"aseams"_UTsh;
488 if (
true && ( (
true&&!(((getUseAASeamEdges()==0))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
489 graph->
evalOpParm(myAASeamEdges, nodeidx,
"aaseamedges", time, 0);
490 myUseBBSeamEdges =
false;
491 if (
true && ( (
true&&!(((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
492 graph->
evalOpParm(myUseBBSeamEdges, nodeidx,
"usebbseamedges", time, 0);
493 myBBSeamEdges =
"bseams"_UTsh;
494 if (
true && ( (
true&&!(((getUseBBSeamEdges()==0))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
495 graph->
evalOpParm(myBBSeamEdges, nodeidx,
"bbseamedges", time, 0);
496 myUseABSeamEdges =
false;
497 if (
true && ( (
true&&!(((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
498 graph->
evalOpParm(myUseABSeamEdges, nodeidx,
"useabseamedges", time, 0);
499 myABSeamEdges =
"abseams"_UTsh;
500 if (
true && ( (
true&&!(((getUseABSeamEdges()==0))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
501 graph->
evalOpParm(myABSeamEdges, nodeidx,
"abseamedges", time, 0);
503 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=4))||((
int64(getWindingOp())==1)))) ) )
504 graph->
evalOpParm(myDepthInA, nodeidx,
"adepth", time, 0);
506 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=4))||((
int64(getWindingOp())==0)))) ) )
507 graph->
evalOpParm(myDepthInB, nodeidx,
"bdepth", time, 0);
523 template <
typename T>
530 if (idx.
size() != instance.
size()+1)
535 coerceValue(value, myGroupA);
538 coerceValue(value, myASurface);
541 coerceValue(value, myResolveA);
544 coerceValue(value, myGroupB);
547 coerceValue(value, myBSurface);
550 coerceValue(value, myResolveB);
553 coerceValue(value, myBooleanOp);
556 coerceValue(value, mySubtractChoices);
559 coerceValue(value, myShatterChoices);
562 coerceValue(value, myOpenCurvesOnly);
565 coerceValue(value, myGenerateAASeams);
568 coerceValue(value, myGenerateBBSeams);
571 coerceValue(value, myGenerateABSeams);
574 coerceValue(value, myWindingOp);
577 coerceValue(value, myMergeNbrs);
580 coerceValue(value, myDetriangulate);
583 coerceValue(value, myRemoveInlinePoints);
586 coerceValue(value, myUniqueSeams);
589 coerceValue(value, myCorrectNormals);
592 coerceValue(value, myUseAxAPolys);
595 coerceValue(value, myAxAPolys);
598 coerceValue(value, myUseAxBPolys);
601 coerceValue(value, myAxBPolys);
604 coerceValue(value, myUseAxAList);
607 coerceValue(value, myAxAList);
610 coerceValue(value, myUseAxBList);
613 coerceValue(value, myAxBList);
616 coerceValue(value, myCollapseTinyEdges);
619 coerceValue(value, myLengthThreshold);
622 coerceValue(value, myUseAPolys);
625 coerceValue(value, myAPolys);
628 coerceValue(value, myUseAInsideB);
631 coerceValue(value, myAInsideB);
634 coerceValue(value, myUseAOutsideB);
637 coerceValue(value, myAOutsideB);
640 coerceValue(value, myUseBPolys);
643 coerceValue(value, myBPolys);
646 coerceValue(value, myUseBInsideA);
649 coerceValue(value, myBInsideA);
652 coerceValue(value, myUseBOutsideA);
655 coerceValue(value, myBOutsideA);
658 coerceValue(value, myUseABOverlap);
661 coerceValue(value, myABOverlap);
664 coerceValue(value, myUseAPieces);
667 coerceValue(value, myAPieces);
670 coerceValue(value, myUseBPieces);
673 coerceValue(value, myBPieces);
676 coerceValue(value, myUseABPieces);
679 coerceValue(value, myABPieces);
682 coerceValue(value, myUseReversedPolys);
685 coerceValue(value, myReversedPolys);
688 coerceValue(value, myUseAASeamEdges);
691 coerceValue(value, myAASeamEdges);
694 coerceValue(value, myUseBBSeamEdges);
697 coerceValue(value, myBBSeamEdges);
700 coerceValue(value, myUseABSeamEdges);
703 coerceValue(value, myABSeamEdges);
706 coerceValue(value, myDepthInA);
709 coerceValue(value, myDepthInB);
725 { doGetParmValue(idx, instance, value); }
727 { doGetParmValue(idx, instance, value); }
729 { doGetParmValue(idx, instance, value); }
731 { doGetParmValue(idx, instance, value); }
733 { doGetParmValue(idx, instance, value); }
735 { doGetParmValue(idx, instance, value); }
737 { doGetParmValue(idx, instance, value); }
739 { doGetParmValue(idx, instance, value); }
741 { doGetParmValue(idx, instance, value); }
743 { doGetParmValue(idx, instance, value); }
745 { doGetParmValue(idx, instance, value); }
747 template <
typename T>
754 if (idx.
size() != instance.
size()+1)
759 coerceValue(myGroupA, ( ( value ) ));
762 coerceValue(myASurface, clampMinValue(0, clampMaxValue(1, value ) ));
765 coerceValue(myResolveA, ( ( value ) ));
768 coerceValue(myGroupB, ( ( value ) ));
771 coerceValue(myBSurface, clampMinValue(0, clampMaxValue(1, value ) ));
774 coerceValue(myResolveB, ( ( value ) ));
777 coerceValue(myBooleanOp, clampMinValue(0, clampMaxValue(9, value ) ));
780 coerceValue(mySubtractChoices, clampMinValue(0, clampMaxValue(2, value ) ));
783 coerceValue(myShatterChoices, clampMinValue(0, clampMaxValue(2, value ) ));
786 coerceValue(myOpenCurvesOnly, ( ( value ) ));
789 coerceValue(myGenerateAASeams, ( ( value ) ));
792 coerceValue(myGenerateBBSeams, ( ( value ) ));
795 coerceValue(myGenerateABSeams, ( ( value ) ));
798 coerceValue(myWindingOp, clampMinValue(0, clampMaxValue(4, value ) ));
801 coerceValue(myMergeNbrs, ( ( value ) ));
804 coerceValue(myDetriangulate, clampMinValue(0, clampMaxValue(2, value ) ));
807 coerceValue(myRemoveInlinePoints, ( ( value ) ));
810 coerceValue(myUniqueSeams, ( ( value ) ));
813 coerceValue(myCorrectNormals, ( ( value ) ));
816 coerceValue(myUseAxAPolys, ( ( value ) ));
819 coerceValue(myAxAPolys, ( ( value ) ));
822 coerceValue(myUseAxBPolys, ( ( value ) ));
825 coerceValue(myAxBPolys, ( ( value ) ));
828 coerceValue(myUseAxAList, ( ( value ) ));
831 coerceValue(myAxAList, ( ( value ) ));
834 coerceValue(myUseAxBList, ( ( value ) ));
837 coerceValue(myAxBList, ( ( value ) ));
840 coerceValue(myCollapseTinyEdges, ( ( value ) ));
843 coerceValue(myLengthThreshold, ( ( value ) ));
846 coerceValue(myUseAPolys, ( ( value ) ));
849 coerceValue(myAPolys, ( ( value ) ));
852 coerceValue(myUseAInsideB, ( ( value ) ));
855 coerceValue(myAInsideB, ( ( value ) ));
858 coerceValue(myUseAOutsideB, ( ( value ) ));
861 coerceValue(myAOutsideB, ( ( value ) ));
864 coerceValue(myUseBPolys, ( ( value ) ));
867 coerceValue(myBPolys, ( ( value ) ));
870 coerceValue(myUseBInsideA, ( ( value ) ));
873 coerceValue(myBInsideA, ( ( value ) ));
876 coerceValue(myUseBOutsideA, ( ( value ) ));
879 coerceValue(myBOutsideA, ( ( value ) ));
882 coerceValue(myUseABOverlap, ( ( value ) ));
885 coerceValue(myABOverlap, ( ( value ) ));
888 coerceValue(myUseAPieces, ( ( value ) ));
891 coerceValue(myAPieces, ( ( value ) ));
894 coerceValue(myUseBPieces, ( ( value ) ));
897 coerceValue(myBPieces, ( ( value ) ));
900 coerceValue(myUseABPieces, ( ( value ) ));
903 coerceValue(myABPieces, ( ( value ) ));
906 coerceValue(myUseReversedPolys, ( ( value ) ));
909 coerceValue(myReversedPolys, ( ( value ) ));
912 coerceValue(myUseAASeamEdges, ( ( value ) ));
915 coerceValue(myAASeamEdges, ( ( value ) ));
918 coerceValue(myUseBBSeamEdges, ( ( value ) ));
921 coerceValue(myBBSeamEdges, ( ( value ) ));
924 coerceValue(myUseABSeamEdges, ( ( value ) ));
927 coerceValue(myABSeamEdges, ( ( value ) ));
930 coerceValue(myDepthInA, ( ( value ) ));
933 coerceValue(myDepthInB, ( ( value ) ));
940 { doSetParmValue(idx, instance, value); }
942 { doSetParmValue(idx, instance, value); }
944 { doSetParmValue(idx, instance, value); }
946 { doSetParmValue(idx, instance, value); }
948 { doSetParmValue(idx, instance, value); }
950 { doSetParmValue(idx, instance, value); }
952 { doSetParmValue(idx, instance, value); }
954 { doSetParmValue(idx, instance, value); }
956 { doSetParmValue(idx, instance, value); }
958 { doSetParmValue(idx, instance, value); }
960 { doSetParmValue(idx, instance, value); }
976 if (fieldnum.
size() < 1)
995 return "subtractchoices";
997 return "shatterchoices";
999 return "opencurvesonly";
1001 return "generateaaseams";
1003 return "generatebbseams";
1005 return "generateabseams";
1011 return "detriangulate";
1013 return "removeinlinepoints";
1015 return "uniqueseams";
1017 return "correctnormals";
1019 return "useaxapolys";
1023 return "useaxbpolys";
1027 return "useaxalist";
1031 return "useaxblist";
1035 return "collapsetinyedges";
1037 return "lengththreshold";
1043 return "useainsideb";
1047 return "useaoutsideb";
1055 return "usebinsidea";
1059 return "useboutsidea";
1063 return "useaboverlap";
1067 return "useaonlypieces";
1069 return "aonlypieces";
1071 return "usebonlypieces";
1073 return "bonlypieces";
1075 return "useabpieces";
1079 return "usereversedpolys";
1081 return "reversedpolys";
1083 return "useaaseamedges";
1085 return "aaseamedges";
1087 return "usebbseamedges";
1089 return "bbseamedges";
1091 return "useabseamedges";
1093 return "abseamedges";
1105 if (fieldnum.
size() < 1)
1106 return PARM_UNSUPPORTED;
1107 switch (fieldnum[0])
1112 return PARM_INTEGER;
1114 return PARM_INTEGER;
1118 return PARM_INTEGER;
1120 return PARM_INTEGER;
1122 return PARM_INTEGER;
1124 return PARM_INTEGER;
1126 return PARM_INTEGER;
1128 return PARM_INTEGER;
1130 return PARM_INTEGER;
1132 return PARM_INTEGER;
1134 return PARM_INTEGER;
1136 return PARM_INTEGER;
1138 return PARM_INTEGER;
1140 return PARM_INTEGER;
1142 return PARM_INTEGER;
1144 return PARM_INTEGER;
1146 return PARM_INTEGER;
1148 return PARM_INTEGER;
1152 return PARM_INTEGER;
1156 return PARM_INTEGER;
1160 return PARM_INTEGER;
1164 return PARM_INTEGER;
1168 return PARM_INTEGER;
1172 return PARM_INTEGER;
1176 return PARM_INTEGER;
1180 return PARM_INTEGER;
1184 return PARM_INTEGER;
1188 return PARM_INTEGER;
1192 return PARM_INTEGER;
1196 return PARM_INTEGER;
1200 return PARM_INTEGER;
1204 return PARM_INTEGER;
1208 return PARM_INTEGER;
1212 return PARM_INTEGER;
1216 return PARM_INTEGER;
1220 return PARM_INTEGER;
1224 return PARM_VECTOR2;
1226 return PARM_VECTOR2;
1229 return PARM_UNSUPPORTED;
1234 { is.
bread(&v, 1); }
1265 loadData(is, rampdata);
1283 int typelen = colon - data.
buffer();
1295 { UTwrite(os, &v); }
1297 {
int64 iv =
v; UTwrite(os, &iv); }
1299 { UTwrite<fpreal64>(os, &
v); }
1301 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
1303 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1304 UTwrite<fpreal64>(os, &v.
z()); }
1306 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1307 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
1319 if (s) s->save(ostr);
1320 result = ostr.
str();
1321 saveData(os, result);
1328 ostr << s->getDataTypeToken();
1330 s->saveBinary(ostr);
1332 result = ostr.
str();
1333 saveData(os, result);
1341 saveData(os, myGroupA);
1342 saveData(os, myASurface);
1343 saveData(os, myResolveA);
1344 saveData(os, myGroupB);
1345 saveData(os, myBSurface);
1346 saveData(os, myResolveB);
1347 saveData(os, myBooleanOp);
1348 saveData(os, mySubtractChoices);
1349 saveData(os, myShatterChoices);
1350 saveData(os, myOpenCurvesOnly);
1351 saveData(os, myGenerateAASeams);
1352 saveData(os, myGenerateBBSeams);
1353 saveData(os, myGenerateABSeams);
1354 saveData(os, myWindingOp);
1355 saveData(os, myMergeNbrs);
1356 saveData(os, myDetriangulate);
1357 saveData(os, myRemoveInlinePoints);
1358 saveData(os, myUniqueSeams);
1359 saveData(os, myCorrectNormals);
1360 saveData(os, myUseAxAPolys);
1361 saveData(os, myAxAPolys);
1362 saveData(os, myUseAxBPolys);
1363 saveData(os, myAxBPolys);
1364 saveData(os, myUseAxAList);
1365 saveData(os, myAxAList);
1366 saveData(os, myUseAxBList);
1367 saveData(os, myAxBList);
1368 saveData(os, myCollapseTinyEdges);
1369 saveData(os, myLengthThreshold);
1370 saveData(os, myUseAPolys);
1371 saveData(os, myAPolys);
1372 saveData(os, myUseAInsideB);
1373 saveData(os, myAInsideB);
1374 saveData(os, myUseAOutsideB);
1375 saveData(os, myAOutsideB);
1376 saveData(os, myUseBPolys);
1377 saveData(os, myBPolys);
1378 saveData(os, myUseBInsideA);
1379 saveData(os, myBInsideA);
1380 saveData(os, myUseBOutsideA);
1381 saveData(os, myBOutsideA);
1382 saveData(os, myUseABOverlap);
1383 saveData(os, myABOverlap);
1384 saveData(os, myUseAPieces);
1385 saveData(os, myAPieces);
1386 saveData(os, myUseBPieces);
1387 saveData(os, myBPieces);
1388 saveData(os, myUseABPieces);
1389 saveData(os, myABPieces);
1390 saveData(os, myUseReversedPolys);
1391 saveData(os, myReversedPolys);
1392 saveData(os, myUseAASeamEdges);
1393 saveData(os, myAASeamEdges);
1394 saveData(os, myUseBBSeamEdges);
1395 saveData(os, myBBSeamEdges);
1396 saveData(os, myUseABSeamEdges);
1397 saveData(os, myABSeamEdges);
1398 saveData(os, myDepthInA);
1399 saveData(os, myDepthInB);
1412 loadData(is, myGroupA);
1413 loadData(is, myASurface);
1414 loadData(is, myResolveA);
1415 loadData(is, myGroupB);
1416 loadData(is, myBSurface);
1417 loadData(is, myResolveB);
1418 loadData(is, myBooleanOp);
1419 loadData(is, mySubtractChoices);
1420 loadData(is, myShatterChoices);
1421 loadData(is, myOpenCurvesOnly);
1422 loadData(is, myGenerateAASeams);
1423 loadData(is, myGenerateBBSeams);
1424 loadData(is, myGenerateABSeams);
1425 loadData(is, myWindingOp);
1426 loadData(is, myMergeNbrs);
1427 loadData(is, myDetriangulate);
1428 loadData(is, myRemoveInlinePoints);
1429 loadData(is, myUniqueSeams);
1430 loadData(is, myCorrectNormals);
1431 loadData(is, myUseAxAPolys);
1432 loadData(is, myAxAPolys);
1433 loadData(is, myUseAxBPolys);
1434 loadData(is, myAxBPolys);
1435 loadData(is, myUseAxAList);
1436 loadData(is, myAxAList);
1437 loadData(is, myUseAxBList);
1438 loadData(is, myAxBList);
1439 loadData(is, myCollapseTinyEdges);
1440 loadData(is, myLengthThreshold);
1441 loadData(is, myUseAPolys);
1442 loadData(is, myAPolys);
1443 loadData(is, myUseAInsideB);
1444 loadData(is, myAInsideB);
1445 loadData(is, myUseAOutsideB);
1446 loadData(is, myAOutsideB);
1447 loadData(is, myUseBPolys);
1448 loadData(is, myBPolys);
1449 loadData(is, myUseBInsideA);
1450 loadData(is, myBInsideA);
1451 loadData(is, myUseBOutsideA);
1452 loadData(is, myBOutsideA);
1453 loadData(is, myUseABOverlap);
1454 loadData(is, myABOverlap);
1455 loadData(is, myUseAPieces);
1456 loadData(is, myAPieces);
1457 loadData(is, myUseBPieces);
1458 loadData(is, myBPieces);
1459 loadData(is, myUseABPieces);
1460 loadData(is, myABPieces);
1461 loadData(is, myUseReversedPolys);
1462 loadData(is, myReversedPolys);
1463 loadData(is, myUseAASeamEdges);
1464 loadData(is, myAASeamEdges);
1465 loadData(is, myUseBBSeamEdges);
1466 loadData(is, myBBSeamEdges);
1467 loadData(is, myUseABSeamEdges);
1468 loadData(is, myABSeamEdges);
1469 loadData(is, myDepthInA);
1470 loadData(is, myDepthInB);
1480 if (!thissop)
return getGroupA();
1482 OP_Utils::evalOpParm(result, thissop,
"agroup", cookparms.
getCookTime(), 0);
1490 if (!thissop)
return getASurface();
1492 OP_Utils::evalOpParm(result, thissop,
"asurface", cookparms.
getCookTime(), 0);
1500 if (!thissop)
return getResolveA();
1502 OP_Utils::evalOpParm(result, thissop,
"resolvea", cookparms.
getCookTime(), 0);
1510 if (!thissop)
return getGroupB();
1512 OP_Utils::evalOpParm(result, thissop,
"bgroup", cookparms.
getCookTime(), 0);
1520 if (!thissop)
return getBSurface();
1522 OP_Utils::evalOpParm(result, thissop,
"bsurface", cookparms.
getCookTime(), 0);
1530 if (!thissop)
return getResolveB();
1532 OP_Utils::evalOpParm(result, thissop,
"resolveb", cookparms.
getCookTime(), 0);
1540 if (!thissop)
return getBooleanOp();
1542 OP_Utils::evalOpParm(result, thissop,
"booleanop", cookparms.
getCookTime(), 0);
1550 if (!thissop)
return getSubtractChoices();
1552 OP_Utils::evalOpParm(result, thissop,
"subtractchoices", cookparms.
getCookTime(), 0);
1560 if (!thissop)
return getShatterChoices();
1562 OP_Utils::evalOpParm(result, thissop,
"shatterchoices", cookparms.
getCookTime(), 0);
1570 if (!thissop)
return getOpenCurvesOnly();
1572 OP_Utils::evalOpParm(result, thissop,
"opencurvesonly", cookparms.
getCookTime(), 0);
1580 if (!thissop)
return getGenerateAASeams();
1582 OP_Utils::evalOpParm(result, thissop,
"generateaaseams", cookparms.
getCookTime(), 0);
1590 if (!thissop)
return getGenerateBBSeams();
1592 OP_Utils::evalOpParm(result, thissop,
"generatebbseams", cookparms.
getCookTime(), 0);
1600 if (!thissop)
return getGenerateABSeams();
1602 OP_Utils::evalOpParm(result, thissop,
"generateabseams", cookparms.
getCookTime(), 0);
1610 if (!thissop)
return getWindingOp();
1612 OP_Utils::evalOpParm(result, thissop,
"windingop", cookparms.
getCookTime(), 0);
1620 if (!thissop)
return getMergeNbrs();
1622 OP_Utils::evalOpParm(result, thissop,
"mergenbrs", cookparms.
getCookTime(), 0);
1630 if (!thissop)
return getDetriangulate();
1632 OP_Utils::evalOpParm(result, thissop,
"detriangulate", cookparms.
getCookTime(), 0);
1640 if (!thissop)
return getRemoveInlinePoints();
1642 OP_Utils::evalOpParm(result, thissop,
"removeinlinepoints", cookparms.
getCookTime(), 0);
1650 if (!thissop)
return getUniqueSeams();
1652 OP_Utils::evalOpParm(result, thissop,
"uniqueseams", cookparms.
getCookTime(), 0);
1660 if (!thissop)
return getCorrectNormals();
1662 OP_Utils::evalOpParm(result, thissop,
"correctnormals", cookparms.
getCookTime(), 0);
1670 if (!thissop)
return getUseAxAPolys();
1672 OP_Utils::evalOpParm(result, thissop,
"useaxapolys", cookparms.
getCookTime(), 0);
1680 if (!thissop)
return getAxAPolys();
1682 OP_Utils::evalOpParm(result, thissop,
"axapolys", cookparms.
getCookTime(), 0);
1690 if (!thissop)
return getUseAxBPolys();
1692 OP_Utils::evalOpParm(result, thissop,
"useaxbpolys", cookparms.
getCookTime(), 0);
1700 if (!thissop)
return getAxBPolys();
1702 OP_Utils::evalOpParm(result, thissop,
"axbpolys", cookparms.
getCookTime(), 0);
1710 if (!thissop)
return getUseAxAList();
1712 OP_Utils::evalOpParm(result, thissop,
"useaxalist", cookparms.
getCookTime(), 0);
1720 if (!thissop)
return getAxAList();
1722 OP_Utils::evalOpParm(result, thissop,
"axalist", cookparms.
getCookTime(), 0);
1730 if (!thissop)
return getUseAxBList();
1732 OP_Utils::evalOpParm(result, thissop,
"useaxblist", cookparms.
getCookTime(), 0);
1740 if (!thissop)
return getAxBList();
1742 OP_Utils::evalOpParm(result, thissop,
"axblist", cookparms.
getCookTime(), 0);
1750 if (!thissop)
return getCollapseTinyEdges();
1752 OP_Utils::evalOpParm(result, thissop,
"collapsetinyedges", cookparms.
getCookTime(), 0);
1760 if (!thissop)
return getLengthThreshold();
1762 OP_Utils::evalOpParm(result, thissop,
"lengththreshold", cookparms.
getCookTime(), 0);
1770 if (!thissop)
return getUseAPolys();
1772 OP_Utils::evalOpParm(result, thissop,
"useapolys", cookparms.
getCookTime(), 0);
1780 if (!thissop)
return getAPolys();
1782 OP_Utils::evalOpParm(result, thissop,
"apolys", cookparms.
getCookTime(), 0);
1790 if (!thissop)
return getUseAInsideB();
1792 OP_Utils::evalOpParm(result, thissop,
"useainsideb", cookparms.
getCookTime(), 0);
1800 if (!thissop)
return getAInsideB();
1802 OP_Utils::evalOpParm(result, thissop,
"ainsideb", cookparms.
getCookTime(), 0);
1810 if (!thissop)
return getUseAOutsideB();
1812 OP_Utils::evalOpParm(result, thissop,
"useaoutsideb", cookparms.
getCookTime(), 0);
1820 if (!thissop)
return getAOutsideB();
1822 OP_Utils::evalOpParm(result, thissop,
"aoutsideb", cookparms.
getCookTime(), 0);
1830 if (!thissop)
return getUseBPolys();
1832 OP_Utils::evalOpParm(result, thissop,
"usebpolys", cookparms.
getCookTime(), 0);
1840 if (!thissop)
return getBPolys();
1842 OP_Utils::evalOpParm(result, thissop,
"bpolys", cookparms.
getCookTime(), 0);
1850 if (!thissop)
return getUseBInsideA();
1852 OP_Utils::evalOpParm(result, thissop,
"usebinsidea", cookparms.
getCookTime(), 0);
1860 if (!thissop)
return getBInsideA();
1862 OP_Utils::evalOpParm(result, thissop,
"binsidea", cookparms.
getCookTime(), 0);
1870 if (!thissop)
return getUseBOutsideA();
1872 OP_Utils::evalOpParm(result, thissop,
"useboutsidea", cookparms.
getCookTime(), 0);
1880 if (!thissop)
return getBOutsideA();
1882 OP_Utils::evalOpParm(result, thissop,
"boutsidea", cookparms.
getCookTime(), 0);
1890 if (!thissop)
return getUseABOverlap();
1892 OP_Utils::evalOpParm(result, thissop,
"useaboverlap", cookparms.
getCookTime(), 0);
1900 if (!thissop)
return getABOverlap();
1902 OP_Utils::evalOpParm(result, thissop,
"aboverlap", cookparms.
getCookTime(), 0);
1910 if (!thissop)
return getUseAPieces();
1912 OP_Utils::evalOpParm(result, thissop,
"useaonlypieces", cookparms.
getCookTime(), 0);
1920 if (!thissop)
return getAPieces();
1922 OP_Utils::evalOpParm(result, thissop,
"aonlypieces", cookparms.
getCookTime(), 0);
1930 if (!thissop)
return getUseBPieces();
1932 OP_Utils::evalOpParm(result, thissop,
"usebonlypieces", cookparms.
getCookTime(), 0);
1940 if (!thissop)
return getBPieces();
1942 OP_Utils::evalOpParm(result, thissop,
"bonlypieces", cookparms.
getCookTime(), 0);
1950 if (!thissop)
return getUseABPieces();
1952 OP_Utils::evalOpParm(result, thissop,
"useabpieces", cookparms.
getCookTime(), 0);
1960 if (!thissop)
return getABPieces();
1962 OP_Utils::evalOpParm(result, thissop,
"abpieces", cookparms.
getCookTime(), 0);
1970 if (!thissop)
return getUseReversedPolys();
1972 OP_Utils::evalOpParm(result, thissop,
"usereversedpolys", cookparms.
getCookTime(), 0);
1980 if (!thissop)
return getReversedPolys();
1982 OP_Utils::evalOpParm(result, thissop,
"reversedpolys", cookparms.
getCookTime(), 0);
1990 if (!thissop)
return getUseAASeamEdges();
1992 OP_Utils::evalOpParm(result, thissop,
"useaaseamedges", cookparms.
getCookTime(), 0);
2000 if (!thissop)
return getAASeamEdges();
2002 OP_Utils::evalOpParm(result, thissop,
"aaseamedges", cookparms.
getCookTime(), 0);
2010 if (!thissop)
return getUseBBSeamEdges();
2012 OP_Utils::evalOpParm(result, thissop,
"usebbseamedges", cookparms.
getCookTime(), 0);
2020 if (!thissop)
return getBBSeamEdges();
2022 OP_Utils::evalOpParm(result, thissop,
"bbseamedges", cookparms.
getCookTime(), 0);
2030 if (!thissop)
return getUseABSeamEdges();
2032 OP_Utils::evalOpParm(result, thissop,
"useabseamedges", cookparms.
getCookTime(), 0);
2040 if (!thissop)
return getABSeamEdges();
2042 OP_Utils::evalOpParm(result, thissop,
"abseamedges", cookparms.
getCookTime(), 0);
2050 if (!thissop)
return getDepthInA();
2052 OP_Utils::evalOpParm(result, thissop,
"adepth", cookparms.
getCookTime(), 0);
2060 if (!thissop)
return getDepthInB();
2062 OP_Utils::evalOpParm(result, thissop,
"bdepth", cookparms.
getCookTime(), 0);
2074 int64 mySubtractChoices;
2075 int64 myShatterChoices;
2076 bool myOpenCurvesOnly;
2077 bool myGenerateAASeams;
2078 bool myGenerateBBSeams;
2079 bool myGenerateABSeams;
2082 int64 myDetriangulate;
2083 bool myRemoveInlinePoints;
2085 bool myCorrectNormals;
2094 bool myCollapseTinyEdges;
2100 bool myUseAOutsideB;
2106 bool myUseBOutsideA;
2108 bool myUseABOverlap;
2116 bool myUseReversedPolys;
2118 bool myUseAASeamEdges;
2120 bool myUseBBSeamEdges;
2122 bool myUseABSeamEdges;
bool opUseABSeamEdges(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Vector2D v)
static void saveData(std::ostream &os, bool v)
UT_Vector2T< int64 > UT_Vector2I
static void loadData(UT_IStream &is, UT_Vector3D &v)
bool opRemoveInlinePoints(const SOP_NodeVerb::CookParms &cookparms) const
bool getRemoveInlinePoints() const
BooleanOp getBooleanOp() const
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
ShatterChoices getShatterChoices() const
bool opGenerateBBSeams(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Vector4D v)
bool opUseAASeamEdges(const SOP_NodeVerb::CookParms &cookparms) const
void setCorrectNormals(bool val)
bool opGenerateAASeams(const SOP_NodeVerb::CookParms &cookparms) const
SOP_Node * getNode() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
void setDetriangulate(Detriangulate val)
static void loadData(UT_IStream &is, int64 &v)
void setWindingOp(WindingOp val)
void setUseABOverlap(bool val)
void setUniqueSeams(bool val)
void setGroupB(const UT_StringHolder &val)
bool getUseABSeamEdges() const
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
UT_StringHolder opAPolys(const SOP_NodeVerb::CookParms &cookparms) const
BSurface opBSurface(const SOP_NodeVerb::CookParms &cookparms) const
void save(std::ostream &os) const
UT_StringHolder opAxBPolys(const SOP_NodeVerb::CookParms &cookparms) const
void setAPieces(const UT_StringHolder &val)
bool opUseAxBPolys(const SOP_NodeVerb::CookParms &cookparms) const
bool opUseAPieces(const SOP_NodeVerb::CookParms &cookparms) const
bool operator!=(const SOP_BooleanParms &src) const
static void saveData(std::ostream &os, fpreal64 v)
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
constexpr SYS_FORCE_INLINE T & y() noexcept
static void loadData(UT_IStream &is, fpreal64 &v)
bool getUseAxBPolys() const
UT_StringHolder opAxAPolys(const SOP_NodeVerb::CookParms &cookparms) const
BSurface getBSurface() const
UT_StringHolder opGroupA(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
UT_StringHolder opABOverlap(const SOP_NodeVerb::CookParms &cookparms) const
void setSubtractChoices(SubtractChoices val)
bool getUseAxBList() const
void setUseABPieces(bool val)
bool opGenerateABSeams(const SOP_NodeVerb::CookParms &cookparms) const
bool getOpenCurvesOnly() const
void setUseABSeamEdges(bool val)
bool opUseBOutsideA(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
const OP_Context & context() const
bool getUseAPieces() const
static void saveData(std::ostream &os, UT_Vector3D v)
void setUseAPolys(bool val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
constexpr SYS_FORCE_INLINE T & z() noexcept
bool isParmColorRamp(exint idx) const override
SYS_FORCE_INLINE const char * buffer() const
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
void setAPolys(const UT_StringHolder &val)
void setAInsideB(const UT_StringHolder &val)
const UT_StringHolder & getGroupA() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
An output stream object that owns its own string buffer storage.
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
static void saveData(std::ostream &os, UT_Matrix4D v)
ASurface getASurface() const
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
UT_StringHolder opReversedPolys(const SOP_NodeVerb::CookParms &cookparms) const
**But if you need a result
static void loadData(UT_IStream &is, UT_Matrix3D &v)
bool getCollapseTinyEdges() const
void setAxAList(const UT_StringHolder &val)
bool getUniqueSeams() const
UT_Vector2I opDepthInA(const SOP_NodeVerb::CookParms &cookparms) const
void setUseAASeamEdges(bool val)
void loadFromOpSubclass(const LoadParms &loadparms) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
void setUseBPolys(bool val)
static void loadData(UT_IStream &is, UT_Vector3I &v)
const UT_StringHolder & getBPieces() const
void setCollapseTinyEdges(bool val)
fpreal64 opLengthThreshold(const SOP_NodeVerb::CookParms &cookparms) const
void setMergeNbrs(bool val)
bool getUseAInsideB() const
UT_StringHolder opAInsideB(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & x() noexcept
void setBOutsideA(const UT_StringHolder &val)
bool opResolveA(const SOP_NodeVerb::CookParms &cookparms) const
WindingOp opWindingOp(const SOP_NodeVerb::CookParms &cookparms) const
bool opOpenCurvesOnly(const SOP_NodeVerb::CookParms &cookparms) const
bool opUseAPolys(const SOP_NodeVerb::CookParms &cookparms) const
void setUseAInsideB(bool val)
const UT_StringHolder & getBInsideA() const
bool getUseBOutsideA() const
bool opUniqueSeams(const SOP_NodeVerb::CookParms &cookparms) const
bool load(UT_IStream &is)
constexpr SYS_FORCE_INLINE T & x() noexcept
bool getUseBPolys() const
bool opUseAOutsideB(const SOP_NodeVerb::CookParms &cookparms) const
void setBooleanOp(BooleanOp val)
bool getUseAASeamEdges() const
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
bool getUseBPieces() const
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
UT_StringHolder opAxAList(const SOP_NodeVerb::CookParms &cookparms) const
bool getGenerateABSeams() const
UT_StringHolder opBBSeamEdges(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, int64 v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
const UT_StringHolder & getBPolys() const
void setABOverlap(const UT_StringHolder &val)
void setAxBPolys(const UT_StringHolder &val)
UT_StringHolder opAOutsideB(const SOP_NodeVerb::CookParms &cookparms) const
bool opUseBPolys(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector2I getDepthInB() const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
bool getUseReversedPolys() const
UT_Vector2I opDepthInB(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & z() noexcept
bool opUseAInsideB(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getReversedPolys() const
void setResolveA(bool val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
static void loadData(UT_IStream &is, UT_Vector2D &v)
SYS_FORCE_INLINE UT_StringHolder getToken(ASurface enum_value)
bool getUseAxAPolys() const
bool getCorrectNormals() const
const OP_GraphProxy * graph() const
fpreal64 getLengthThreshold() const
void setUseAxAPolys(bool val)
bool opUseAxAPolys(const SOP_NodeVerb::CookParms &cookparms) const
void copyFrom(const OP_NodeParms *src) override
bool opUseABPieces(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getAPolys() const
exint getNestNumParms(TempIndex idx) const override
static void loadData(UT_IStream &is, UT_StringHolder &v)
bool opMergeNbrs(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getABOverlap() const
const UT_StringHolder & getBBSeamEdges() const
void setResolveB(bool val)
void setAASeamEdges(const UT_StringHolder &val)
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
bool opResolveB(const SOP_NodeVerb::CookParms &cookparms) const
void setAxAPolys(const UT_StringHolder &val)
void setDepthInB(UT_Vector2I val)
void setGroupA(const UT_StringHolder &val)
SubtractChoices opSubtractChoices(const SOP_NodeVerb::CookParms &cookparms) const
bool opUseBInsideA(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getAASeamEdges() const
static void saveData(std::ostream &os, UT_Matrix3D v)
const UT_StringHolder & getGroupB() const
void setASurface(ASurface val)
void setUseAOutsideB(bool val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
bool getGenerateBBSeams() const
bool opUseABOverlap(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opABPieces(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getAxBList() const
void setGenerateBBSeams(bool val)
bool opUseAxAList(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector2I &v)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
bool opUseAxBList(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opABSeamEdges(const SOP_NodeVerb::CookParms &cookparms) const
bool getUseAPolys() const
ASurface opASurface(const SOP_NodeVerb::CookParms &cookparms) const
void setUseAxAList(bool val)
void setRemoveInlinePoints(bool val)
bool opCorrectNormals(const SOP_NodeVerb::CookParms &cookparms) const
void saveBinary(std::ostream &os) const
Save string to binary stream.
GT_API const UT_StringHolder version
const UT_StringHolder & getABPieces() const
bool opUseBPieces(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getAxBPolys() const
UT_StringHolder opAxBList(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getAInsideB() const
void setAxBList(const UT_StringHolder &val)
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
void setBSurface(BSurface val)
void setDepthInA(UT_Vector2I val)
Detriangulate getDetriangulate() const
void setBPolys(const UT_StringHolder &val)
UT_StringHolder opBPolys(const SOP_NodeVerb::CookParms &cookparms) const
bool getUseBInsideA() const
void setBInsideA(const UT_StringHolder &val)
bool getUseABPieces() const
void setGenerateABSeams(bool val)
ShatterChoices opShatterChoices(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getAxAList() const
void setUseBOutsideA(bool val)
static void saveData(std::ostream &os, PRM_DataItemHandle s)
bool opCollapseTinyEdges(const SOP_NodeVerb::CookParms &cookparms) const
BooleanOp opBooleanOp(const SOP_NodeVerb::CookParms &cookparms) const
DEP_MicroNode * depnode() const
bool operator==(const SOP_BooleanParms &src) const
Detriangulate opDetriangulate(const SOP_NodeVerb::CookParms &cookparms) const
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
bool getMergeNbrs() const
void setUseAPieces(bool val)
void setABPieces(const UT_StringHolder &val)
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void setUseBPieces(bool val)
constexpr SYS_FORCE_INLINE T & w() noexcept
UT_StringHolder opAPieces(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_StringHolder s)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
WindingOp getWindingOp() const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
void setReversedPolys(const UT_StringHolder &val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
void setLengthThreshold(fpreal64 val)
fpreal getCookTime() const
const UT_StringHolder & getBOutsideA() const
void setUseAxBList(bool val)
void setUseBInsideA(bool val)
static void loadData(UT_IStream &is, UT_Vector4I &v)
bool opUseBBSeamEdges(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector2I getDepthInA() const
const UT_StringHolder & getAOutsideB() const
const char * findChar(int c) const
bool getUseAxAList() const
UT_StringHolder opAASeamEdges(const SOP_NodeVerb::CookParms &cookparms) const
void setUseAxBPolys(bool val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
static void loadData(UT_IStream &is, UT_Vector4D &v)
void setUseReversedPolys(bool val)
const UT_StringHolder & getAPieces() const
void setGenerateAASeams(bool val)
void setBBSeamEdges(const UT_StringHolder &val)
ParmType getNestParmType(TempIndex fieldnum) const override
void setUseBBSeamEdges(bool val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
void setBPieces(const UT_StringHolder &val)
void setShatterChoices(ShatterChoices val)
constexpr SYS_FORCE_INLINE T & y() noexcept
bool opUseReversedPolys(const SOP_NodeVerb::CookParms &cookparms) const
void setABSeamEdges(const UT_StringHolder &val)
const UT_StringHolder & getABSeamEdges() const
void setOpenCurvesOnly(bool val)
const UT_StringHolder & getAxAPolys() const
bool getUseAOutsideB() const
UT_StringHolder opBPieces(const SOP_NodeVerb::CookParms &cookparms) const
void setAOutsideB(const UT_StringHolder &val)
static void loadData(UT_IStream &is, bool &v)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
UT_StringHolder opBInsideA(const SOP_NodeVerb::CookParms &cookparms) const
SubtractChoices getSubtractChoices() const
static void saveData(std::ostream &os, UT_Matrix2D v)
constexpr SYS_FORCE_INLINE T & y() noexcept
SYS_FORCE_INLINE bool isstring() const
UT_StringHolder opGroupB(const SOP_NodeVerb::CookParms &cookparms) const
bool getGenerateAASeams() const
UT_StringHolder opBOutsideA(const SOP_NodeVerb::CookParms &cookparms) const
const char * getNestParmName(TempIndex fieldnum) const override
bool getUseBBSeamEdges() const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
bool getUseABOverlap() const
static void loadData(UT_IStream &is, UT_Matrix4D &v)
constexpr SYS_FORCE_INLINE T & x() noexcept
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override