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;
336 graph->
evalOpParm(myGroupA, nodeidx,
"agroup", time, graph->
isDirect()?
nullptr:depnode);
339 graph->
evalOpParm(myASurface, nodeidx,
"asurface", time, graph->
isDirect()?
nullptr:depnode);
342 graph->
evalOpParm(myResolveA, nodeidx,
"resolvea", time, graph->
isDirect()?
nullptr:depnode);
345 graph->
evalOpParm(myGroupB, nodeidx,
"bgroup", time, graph->
isDirect()?
nullptr:depnode);
348 graph->
evalOpParm(myBSurface, nodeidx,
"bsurface", time, graph->
isDirect()?
nullptr:depnode);
351 graph->
evalOpParm(myResolveB, nodeidx,
"resolveb", time, graph->
isDirect()?
nullptr:depnode);
354 graph->
evalOpParm(myBooleanOp, nodeidx,
"booleanop", time, graph->
isDirect()?
nullptr:depnode);
355 mySubtractChoices = 0;
356 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=2)))) ) )
357 graph->
evalOpParm(mySubtractChoices, nodeidx,
"subtractchoices", time, graph->
isDirect()?
nullptr:depnode);
358 myShatterChoices = 0;
359 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=3)))) ) )
360 graph->
evalOpParm(myShatterChoices, nodeidx,
"shatterchoices", time, graph->
isDirect()?
nullptr:depnode);
361 myOpenCurvesOnly =
true;
362 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=6)))) ) )
363 graph->
evalOpParm(myOpenCurvesOnly, nodeidx,
"opencurvesonly", time, graph->
isDirect()?
nullptr:depnode);
364 myGenerateAASeams =
true;
365 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=6)))) ) )
366 graph->
evalOpParm(myGenerateAASeams, nodeidx,
"generateaaseams", time, graph->
isDirect()?
nullptr:depnode);
367 myGenerateBBSeams =
true;
368 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=6)))) ) )
369 graph->
evalOpParm(myGenerateBBSeams, nodeidx,
"generatebbseams", time, graph->
isDirect()?
nullptr:depnode);
370 myGenerateABSeams =
true;
371 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=6)))) ) )
372 graph->
evalOpParm(myGenerateABSeams, nodeidx,
"generateabseams", time, graph->
isDirect()?
nullptr:depnode);
374 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=4)))) ) )
375 graph->
evalOpParm(myWindingOp, nodeidx,
"windingop", time, graph->
isDirect()?
nullptr:depnode);
377 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=4)))) ) )
378 graph->
evalOpParm(myMergeNbrs, nodeidx,
"mergenbrs", time, graph->
isDirect()?
nullptr:depnode);
380 if (
true && ( (
true&&!(((
int64(getBooleanOp())==6))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
381 graph->
evalOpParm(myDetriangulate, nodeidx,
"detriangulate", time, graph->
isDirect()?
nullptr:depnode);
382 myRemoveInlinePoints =
true;
383 if (
true && ( (
true&&!(((
int64(getBooleanOp())==6))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9))||((
int64(getDetriangulate())!=2)))) ) )
384 graph->
evalOpParm(myRemoveInlinePoints, nodeidx,
"removeinlinepoints", time, graph->
isDirect()?
nullptr:depnode);
385 myUniqueSeams =
false;
386 if (
true && ( (
true&&!(((
int64(getBooleanOp())==6))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
387 graph->
evalOpParm(myUniqueSeams, nodeidx,
"uniqueseams", time, graph->
isDirect()?
nullptr:depnode);
388 myCorrectNormals =
true;
389 if (
true && ( (
true&&!(((
int64(getBooleanOp())==6))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
390 graph->
evalOpParm(myCorrectNormals, nodeidx,
"correctnormals", time, graph->
isDirect()?
nullptr:depnode);
391 myUseAxAPolys =
false;
392 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=8)))) ) )
393 graph->
evalOpParm(myUseAxAPolys, nodeidx,
"useaxapolys", time, graph->
isDirect()?
nullptr:depnode);
394 myAxAPolys =
"axapolys"_UTsh;
395 if (
true && ( (
true&&!(((getUseAxAPolys()==0))||((
int64(getBooleanOp())!=8)))) ) )
396 graph->
evalOpParm(myAxAPolys, nodeidx,
"axapolys", time, graph->
isDirect()?
nullptr:depnode);
397 myUseAxBPolys =
false;
398 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=8)))) ) )
399 graph->
evalOpParm(myUseAxBPolys, nodeidx,
"useaxbpolys", time, graph->
isDirect()?
nullptr:depnode);
400 myAxBPolys =
"axbpolys"_UTsh;
401 if (
true && ( (
true&&!(((getUseAxBPolys()==0))||((
int64(getBooleanOp())!=8)))) ) )
402 graph->
evalOpParm(myAxBPolys, nodeidx,
"axbpolys", time, graph->
isDirect()?
nullptr:depnode);
403 myUseAxAList =
false;
404 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=8)))) ) )
405 graph->
evalOpParm(myUseAxAList, nodeidx,
"useaxalist", time, graph->
isDirect()?
nullptr:depnode);
406 myAxAList =
"axalist"_UTsh;
407 if (
true && ( (
true&&!(((getUseAxAList()==0))||((
int64(getBooleanOp())!=8)))) ) )
408 graph->
evalOpParm(myAxAList, nodeidx,
"axalist", time, graph->
isDirect()?
nullptr:depnode);
409 myUseAxBList =
false;
410 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=8)))) ) )
411 graph->
evalOpParm(myUseAxBList, nodeidx,
"useaxblist", time, graph->
isDirect()?
nullptr:depnode);
412 myAxBList =
"axblist"_UTsh;
413 if (
true && ( (
true&&!(((getUseAxBList()==0))||((
int64(getBooleanOp())!=8)))) ) )
414 graph->
evalOpParm(myAxBList, nodeidx,
"axblist", time, graph->
isDirect()?
nullptr:depnode);
415 myCollapseTinyEdges =
true;
416 if (
true && ( (
true&&!(((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9))||((
int64(getBooleanOp())==6)))) ) )
417 graph->
evalOpParm(myCollapseTinyEdges, nodeidx,
"collapsetinyedges", time, graph->
isDirect()?
nullptr:depnode);
418 myLengthThreshold = 0.00001;
419 if (
true && ( (
true&&!(((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9))||((
int64(getBooleanOp())==6))||((getCollapseTinyEdges()==0)))) ) )
420 graph->
evalOpParm(myLengthThreshold, nodeidx,
"lengththreshold", time, graph->
isDirect()?
nullptr:depnode);
422 if (
true && ( (
true&&!(((
int64(getBooleanOp())==6))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9))||((
int64(getBSurface())==0)))) ) )
423 graph->
evalOpParm(myUseAPolys, nodeidx,
"useapolys", time, graph->
isDirect()?
nullptr:depnode);
424 myAPolys =
"apolys"_UTsh;
425 if (
true && ( (
true&&!(((
int64(getBSurface())==0))||((getUseAPolys()==0)))) ) )
426 graph->
evalOpParm(myAPolys, nodeidx,
"apolys", time, graph->
isDirect()?
nullptr:depnode);
427 myUseAInsideB =
false;
428 if (
true && ( (
true&&!(((
int64(getBooleanOp())==6))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9))||((
int64(getBSurface())==1)))) ) )
429 graph->
evalOpParm(myUseAInsideB, nodeidx,
"useainsideb", time, graph->
isDirect()?
nullptr:depnode);
430 myAInsideB =
"ainsideb"_UTsh;
431 if (
true && ( (
true&&!(((
int64(getBSurface())==1))||((getUseAInsideB()==0)))) ) )
432 graph->
evalOpParm(myAInsideB, nodeidx,
"ainsideb", time, graph->
isDirect()?
nullptr:depnode);
433 myUseAOutsideB =
false;
434 if (
true && ( (
true&&!(((
int64(getBooleanOp())==6))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9))||((
int64(getBSurface())==1)))) ) )
435 graph->
evalOpParm(myUseAOutsideB, nodeidx,
"useaoutsideb", time, graph->
isDirect()?
nullptr:depnode);
436 myAOutsideB =
"aoutsideb"_UTsh;
437 if (
true && ( (
true&&!(((
int64(getBSurface())==1))||((getUseAOutsideB()==0)))) ) )
438 graph->
evalOpParm(myAOutsideB, nodeidx,
"aoutsideb", time, graph->
isDirect()?
nullptr:depnode);
440 if (
true && ( (
true&&!(((
int64(getBooleanOp())==6))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9))||((
int64(getASurface())==0)))) ) )
441 graph->
evalOpParm(myUseBPolys, nodeidx,
"usebpolys", time, graph->
isDirect()?
nullptr:depnode);
442 myBPolys =
"bpolys"_UTsh;
443 if (
true && ( (
true&&!(((getUseBPolys()==0))||((
int64(getASurface())==0)))) ) )
444 graph->
evalOpParm(myBPolys, nodeidx,
"bpolys", time, graph->
isDirect()?
nullptr:depnode);
445 myUseBInsideA =
false;
446 if (
true && ( (
true&&!(((
int64(getASurface())==1))||((
int64(getBooleanOp())==6))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
447 graph->
evalOpParm(myUseBInsideA, nodeidx,
"usebinsidea", time, graph->
isDirect()?
nullptr:depnode);
448 myBInsideA =
"binsidea"_UTsh;
449 if (
true && ( (
true&&!(((
int64(getASurface())==1))||((getUseBInsideA()==0)))) ) )
450 graph->
evalOpParm(myBInsideA, nodeidx,
"binsidea", time, graph->
isDirect()?
nullptr:depnode);
451 myUseBOutsideA =
false;
452 if (
true && ( (
true&&!(((
int64(getASurface())==1))||((
int64(getBooleanOp())==6))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
453 graph->
evalOpParm(myUseBOutsideA, nodeidx,
"useboutsidea", time, graph->
isDirect()?
nullptr:depnode);
454 myBOutsideA =
"boutsidea"_UTsh;
455 if (
true && ( (
true&&!(((
int64(getASurface())==1))||((getUseBOutsideA()==0)))) ) )
456 graph->
evalOpParm(myBOutsideA, nodeidx,
"boutsidea", time, graph->
isDirect()?
nullptr:depnode);
457 myUseABOverlap =
false;
458 if (
true && ( (
true&&!(((
int64(getBooleanOp())==6))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
459 graph->
evalOpParm(myUseABOverlap, nodeidx,
"useaboverlap", time, graph->
isDirect()?
nullptr:depnode);
460 myABOverlap =
"aboverlap"_UTsh;
461 if (
true && ( (
true&&!(((getUseABOverlap()==0)))) ) )
462 graph->
evalOpParm(myABOverlap, nodeidx,
"aboverlap", time, graph->
isDirect()?
nullptr:depnode);
463 myUseAPieces =
false;
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)))) ) )
465 graph->
evalOpParm(myUseAPieces, nodeidx,
"useaonlypieces", time, graph->
isDirect()?
nullptr:depnode);
466 myAPieces =
"apieces"_UTsh;
467 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)))) ) )
468 graph->
evalOpParm(myAPieces, nodeidx,
"aonlypieces", time, graph->
isDirect()?
nullptr:depnode);
469 myUseBPieces =
false;
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)))) ) )
471 graph->
evalOpParm(myUseBPieces, nodeidx,
"usebonlypieces", time, graph->
isDirect()?
nullptr:depnode);
472 myBPieces =
"bpieces"_UTsh;
473 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)))) ) )
474 graph->
evalOpParm(myBPieces, nodeidx,
"bonlypieces", time, graph->
isDirect()?
nullptr:depnode);
475 myUseABPieces =
false;
476 if (
true && ( (
true&&!(((
int64(getBSurface())==1)&&(
int64(getASurface())==1))||((
int64(getBooleanOp())!=3)))) ) )
477 graph->
evalOpParm(myUseABPieces, nodeidx,
"useabpieces", time, graph->
isDirect()?
nullptr:depnode);
478 myABPieces =
"abpieces"_UTsh;
479 if (
true && ( (
true&&!(((
int64(getBSurface())==1)&&(
int64(getASurface())==1))||((
int64(getBooleanOp())!=3))||((getUseABPieces()==0)))) ) )
480 graph->
evalOpParm(myABPieces, nodeidx,
"abpieces", time, graph->
isDirect()?
nullptr:depnode);
481 myUseReversedPolys =
false;
482 if (
true && ( (
true&&!(((
int64(getBSurface())==1)&&(
int64(getASurface())==1))||((
int64(getBooleanOp())!=3)&&(
int64(getBooleanOp())!=2)))) ) )
483 graph->
evalOpParm(myUseReversedPolys, nodeidx,
"usereversedpolys", time, graph->
isDirect()?
nullptr:depnode);
484 myReversedPolys =
"reversed"_UTsh;
485 if (
true && ( (
true&&!(((
int64(getBSurface())==1)&&(
int64(getASurface())==1))||((
int64(getBooleanOp())!=3)&&(
int64(getBooleanOp())!=2))||((getUseReversedPolys()==0)))) ) )
486 graph->
evalOpParm(myReversedPolys, nodeidx,
"reversedpolys", time, graph->
isDirect()?
nullptr:depnode);
487 myUseAASeamEdges =
false;
488 if (
true && ( (
true&&!(((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
489 graph->
evalOpParm(myUseAASeamEdges, nodeidx,
"useaaseamedges", time, graph->
isDirect()?
nullptr:depnode);
490 myAASeamEdges =
"aseams"_UTsh;
491 if (
true && ( (
true&&!(((getUseAASeamEdges()==0))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
492 graph->
evalOpParm(myAASeamEdges, nodeidx,
"aaseamedges", time, graph->
isDirect()?
nullptr:depnode);
493 myUseBBSeamEdges =
false;
494 if (
true && ( (
true&&!(((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
495 graph->
evalOpParm(myUseBBSeamEdges, nodeidx,
"usebbseamedges", time, graph->
isDirect()?
nullptr:depnode);
496 myBBSeamEdges =
"bseams"_UTsh;
497 if (
true && ( (
true&&!(((getUseBBSeamEdges()==0))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
498 graph->
evalOpParm(myBBSeamEdges, nodeidx,
"bbseamedges", time, graph->
isDirect()?
nullptr:depnode);
499 myUseABSeamEdges =
false;
500 if (
true && ( (
true&&!(((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
501 graph->
evalOpParm(myUseABSeamEdges, nodeidx,
"useabseamedges", time, graph->
isDirect()?
nullptr:depnode);
502 myABSeamEdges =
"abseams"_UTsh;
503 if (
true && ( (
true&&!(((getUseABSeamEdges()==0))||((
int64(getBooleanOp())==8))||((
int64(getBooleanOp())==9)))) ) )
504 graph->
evalOpParm(myABSeamEdges, nodeidx,
"abseamedges", time, graph->
isDirect()?
nullptr:depnode);
506 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=4))||((
int64(getWindingOp())==1)))) ) )
507 graph->
evalOpParm(myDepthInA, nodeidx,
"adepth", time, graph->
isDirect()?
nullptr:depnode);
509 if (
true && ( (
true&&!(((
int64(getBooleanOp())!=4))||((
int64(getWindingOp())==0)))) ) )
510 graph->
evalOpParm(myDepthInB, nodeidx,
"bdepth", time, graph->
isDirect()?
nullptr:depnode);
526 template <
typename T>
533 if (idx.
size() != instance.
size()+1)
538 coerceValue(value, myGroupA);
541 coerceValue(value, myASurface);
544 coerceValue(value, myResolveA);
547 coerceValue(value, myGroupB);
550 coerceValue(value, myBSurface);
553 coerceValue(value, myResolveB);
556 coerceValue(value, myBooleanOp);
559 coerceValue(value, mySubtractChoices);
562 coerceValue(value, myShatterChoices);
565 coerceValue(value, myOpenCurvesOnly);
568 coerceValue(value, myGenerateAASeams);
571 coerceValue(value, myGenerateBBSeams);
574 coerceValue(value, myGenerateABSeams);
577 coerceValue(value, myWindingOp);
580 coerceValue(value, myMergeNbrs);
583 coerceValue(value, myDetriangulate);
586 coerceValue(value, myRemoveInlinePoints);
589 coerceValue(value, myUniqueSeams);
592 coerceValue(value, myCorrectNormals);
595 coerceValue(value, myUseAxAPolys);
598 coerceValue(value, myAxAPolys);
601 coerceValue(value, myUseAxBPolys);
604 coerceValue(value, myAxBPolys);
607 coerceValue(value, myUseAxAList);
610 coerceValue(value, myAxAList);
613 coerceValue(value, myUseAxBList);
616 coerceValue(value, myAxBList);
619 coerceValue(value, myCollapseTinyEdges);
622 coerceValue(value, myLengthThreshold);
625 coerceValue(value, myUseAPolys);
628 coerceValue(value, myAPolys);
631 coerceValue(value, myUseAInsideB);
634 coerceValue(value, myAInsideB);
637 coerceValue(value, myUseAOutsideB);
640 coerceValue(value, myAOutsideB);
643 coerceValue(value, myUseBPolys);
646 coerceValue(value, myBPolys);
649 coerceValue(value, myUseBInsideA);
652 coerceValue(value, myBInsideA);
655 coerceValue(value, myUseBOutsideA);
658 coerceValue(value, myBOutsideA);
661 coerceValue(value, myUseABOverlap);
664 coerceValue(value, myABOverlap);
667 coerceValue(value, myUseAPieces);
670 coerceValue(value, myAPieces);
673 coerceValue(value, myUseBPieces);
676 coerceValue(value, myBPieces);
679 coerceValue(value, myUseABPieces);
682 coerceValue(value, myABPieces);
685 coerceValue(value, myUseReversedPolys);
688 coerceValue(value, myReversedPolys);
691 coerceValue(value, myUseAASeamEdges);
694 coerceValue(value, myAASeamEdges);
697 coerceValue(value, myUseBBSeamEdges);
700 coerceValue(value, myBBSeamEdges);
703 coerceValue(value, myUseABSeamEdges);
706 coerceValue(value, myABSeamEdges);
709 coerceValue(value, myDepthInA);
712 coerceValue(value, myDepthInB);
728 { doGetParmValue(idx, instance, value); }
730 { doGetParmValue(idx, instance, value); }
732 { doGetParmValue(idx, instance, value); }
734 { doGetParmValue(idx, instance, value); }
736 { doGetParmValue(idx, instance, value); }
738 { doGetParmValue(idx, instance, value); }
740 { doGetParmValue(idx, instance, value); }
742 { doGetParmValue(idx, instance, value); }
744 { doGetParmValue(idx, instance, value); }
746 { doGetParmValue(idx, instance, value); }
748 { doGetParmValue(idx, instance, value); }
750 template <
typename T>
757 if (idx.
size() != instance.
size()+1)
762 coerceValue(myGroupA, ( ( value ) ));
765 coerceValue(myASurface, clampMinValue(0, clampMaxValue(1, value ) ));
768 coerceValue(myResolveA, ( ( value ) ));
771 coerceValue(myGroupB, ( ( value ) ));
774 coerceValue(myBSurface, clampMinValue(0, clampMaxValue(1, value ) ));
777 coerceValue(myResolveB, ( ( value ) ));
780 coerceValue(myBooleanOp, clampMinValue(0, clampMaxValue(9, value ) ));
783 coerceValue(mySubtractChoices, clampMinValue(0, clampMaxValue(2, value ) ));
786 coerceValue(myShatterChoices, clampMinValue(0, clampMaxValue(2, value ) ));
789 coerceValue(myOpenCurvesOnly, ( ( value ) ));
792 coerceValue(myGenerateAASeams, ( ( value ) ));
795 coerceValue(myGenerateBBSeams, ( ( value ) ));
798 coerceValue(myGenerateABSeams, ( ( value ) ));
801 coerceValue(myWindingOp, clampMinValue(0, clampMaxValue(4, value ) ));
804 coerceValue(myMergeNbrs, ( ( value ) ));
807 coerceValue(myDetriangulate, clampMinValue(0, clampMaxValue(2, value ) ));
810 coerceValue(myRemoveInlinePoints, ( ( value ) ));
813 coerceValue(myUniqueSeams, ( ( value ) ));
816 coerceValue(myCorrectNormals, ( ( value ) ));
819 coerceValue(myUseAxAPolys, ( ( value ) ));
822 coerceValue(myAxAPolys, ( ( value ) ));
825 coerceValue(myUseAxBPolys, ( ( value ) ));
828 coerceValue(myAxBPolys, ( ( value ) ));
831 coerceValue(myUseAxAList, ( ( value ) ));
834 coerceValue(myAxAList, ( ( value ) ));
837 coerceValue(myUseAxBList, ( ( value ) ));
840 coerceValue(myAxBList, ( ( value ) ));
843 coerceValue(myCollapseTinyEdges, ( ( value ) ));
846 coerceValue(myLengthThreshold, ( ( value ) ));
849 coerceValue(myUseAPolys, ( ( value ) ));
852 coerceValue(myAPolys, ( ( value ) ));
855 coerceValue(myUseAInsideB, ( ( value ) ));
858 coerceValue(myAInsideB, ( ( value ) ));
861 coerceValue(myUseAOutsideB, ( ( value ) ));
864 coerceValue(myAOutsideB, ( ( value ) ));
867 coerceValue(myUseBPolys, ( ( value ) ));
870 coerceValue(myBPolys, ( ( value ) ));
873 coerceValue(myUseBInsideA, ( ( value ) ));
876 coerceValue(myBInsideA, ( ( value ) ));
879 coerceValue(myUseBOutsideA, ( ( value ) ));
882 coerceValue(myBOutsideA, ( ( value ) ));
885 coerceValue(myUseABOverlap, ( ( value ) ));
888 coerceValue(myABOverlap, ( ( value ) ));
891 coerceValue(myUseAPieces, ( ( value ) ));
894 coerceValue(myAPieces, ( ( value ) ));
897 coerceValue(myUseBPieces, ( ( value ) ));
900 coerceValue(myBPieces, ( ( value ) ));
903 coerceValue(myUseABPieces, ( ( value ) ));
906 coerceValue(myABPieces, ( ( value ) ));
909 coerceValue(myUseReversedPolys, ( ( value ) ));
912 coerceValue(myReversedPolys, ( ( value ) ));
915 coerceValue(myUseAASeamEdges, ( ( value ) ));
918 coerceValue(myAASeamEdges, ( ( value ) ));
921 coerceValue(myUseBBSeamEdges, ( ( value ) ));
924 coerceValue(myBBSeamEdges, ( ( value ) ));
927 coerceValue(myUseABSeamEdges, ( ( value ) ));
930 coerceValue(myABSeamEdges, ( ( value ) ));
933 coerceValue(myDepthInA, ( ( value ) ));
936 coerceValue(myDepthInB, ( ( value ) ));
943 { doSetParmValue(idx, instance, value); }
945 { doSetParmValue(idx, instance, value); }
947 { doSetParmValue(idx, instance, value); }
949 { doSetParmValue(idx, instance, value); }
951 { doSetParmValue(idx, instance, value); }
953 { doSetParmValue(idx, instance, value); }
955 { doSetParmValue(idx, instance, value); }
957 { doSetParmValue(idx, instance, value); }
959 { doSetParmValue(idx, instance, value); }
961 { doSetParmValue(idx, instance, value); }
963 { doSetParmValue(idx, instance, value); }
979 if (fieldnum.
size() < 1)
998 return "subtractchoices";
1000 return "shatterchoices";
1002 return "opencurvesonly";
1004 return "generateaaseams";
1006 return "generatebbseams";
1008 return "generateabseams";
1014 return "detriangulate";
1016 return "removeinlinepoints";
1018 return "uniqueseams";
1020 return "correctnormals";
1022 return "useaxapolys";
1026 return "useaxbpolys";
1030 return "useaxalist";
1034 return "useaxblist";
1038 return "collapsetinyedges";
1040 return "lengththreshold";
1046 return "useainsideb";
1050 return "useaoutsideb";
1058 return "usebinsidea";
1062 return "useboutsidea";
1066 return "useaboverlap";
1070 return "useaonlypieces";
1072 return "aonlypieces";
1074 return "usebonlypieces";
1076 return "bonlypieces";
1078 return "useabpieces";
1082 return "usereversedpolys";
1084 return "reversedpolys";
1086 return "useaaseamedges";
1088 return "aaseamedges";
1090 return "usebbseamedges";
1092 return "bbseamedges";
1094 return "useabseamedges";
1096 return "abseamedges";
1108 if (fieldnum.
size() < 1)
1109 return PARM_UNSUPPORTED;
1110 switch (fieldnum[0])
1115 return PARM_INTEGER;
1117 return PARM_INTEGER;
1121 return PARM_INTEGER;
1123 return PARM_INTEGER;
1125 return PARM_INTEGER;
1127 return PARM_INTEGER;
1129 return PARM_INTEGER;
1131 return PARM_INTEGER;
1133 return PARM_INTEGER;
1135 return PARM_INTEGER;
1137 return PARM_INTEGER;
1139 return PARM_INTEGER;
1141 return PARM_INTEGER;
1143 return PARM_INTEGER;
1145 return PARM_INTEGER;
1147 return PARM_INTEGER;
1149 return PARM_INTEGER;
1151 return PARM_INTEGER;
1155 return PARM_INTEGER;
1159 return PARM_INTEGER;
1163 return PARM_INTEGER;
1167 return PARM_INTEGER;
1171 return PARM_INTEGER;
1175 return PARM_INTEGER;
1179 return PARM_INTEGER;
1183 return PARM_INTEGER;
1187 return PARM_INTEGER;
1191 return PARM_INTEGER;
1195 return PARM_INTEGER;
1199 return PARM_INTEGER;
1203 return PARM_INTEGER;
1207 return PARM_INTEGER;
1211 return PARM_INTEGER;
1215 return PARM_INTEGER;
1219 return PARM_INTEGER;
1223 return PARM_INTEGER;
1227 return PARM_VECTOR2;
1229 return PARM_VECTOR2;
1232 return PARM_UNSUPPORTED;
1237 { is.
bread(&v, 1); }
1268 loadData(is, rampdata);
1286 int typelen = colon - data.
buffer();
1298 { UTwrite(os, &v); }
1300 {
int64 iv =
v; UTwrite(os, &iv); }
1302 { UTwrite<fpreal64>(os, &
v); }
1304 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
1306 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1307 UTwrite<fpreal64>(os, &v.
z()); }
1309 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1310 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
1322 if (s) s->save(ostr);
1323 result = ostr.
str();
1324 saveData(os, result);
1331 ostr << s->getDataTypeToken();
1333 s->saveBinary(ostr);
1335 result = ostr.
str();
1336 saveData(os, result);
1344 saveData(os, myGroupA);
1345 saveData(os, myASurface);
1346 saveData(os, myResolveA);
1347 saveData(os, myGroupB);
1348 saveData(os, myBSurface);
1349 saveData(os, myResolveB);
1350 saveData(os, myBooleanOp);
1351 saveData(os, mySubtractChoices);
1352 saveData(os, myShatterChoices);
1353 saveData(os, myOpenCurvesOnly);
1354 saveData(os, myGenerateAASeams);
1355 saveData(os, myGenerateBBSeams);
1356 saveData(os, myGenerateABSeams);
1357 saveData(os, myWindingOp);
1358 saveData(os, myMergeNbrs);
1359 saveData(os, myDetriangulate);
1360 saveData(os, myRemoveInlinePoints);
1361 saveData(os, myUniqueSeams);
1362 saveData(os, myCorrectNormals);
1363 saveData(os, myUseAxAPolys);
1364 saveData(os, myAxAPolys);
1365 saveData(os, myUseAxBPolys);
1366 saveData(os, myAxBPolys);
1367 saveData(os, myUseAxAList);
1368 saveData(os, myAxAList);
1369 saveData(os, myUseAxBList);
1370 saveData(os, myAxBList);
1371 saveData(os, myCollapseTinyEdges);
1372 saveData(os, myLengthThreshold);
1373 saveData(os, myUseAPolys);
1374 saveData(os, myAPolys);
1375 saveData(os, myUseAInsideB);
1376 saveData(os, myAInsideB);
1377 saveData(os, myUseAOutsideB);
1378 saveData(os, myAOutsideB);
1379 saveData(os, myUseBPolys);
1380 saveData(os, myBPolys);
1381 saveData(os, myUseBInsideA);
1382 saveData(os, myBInsideA);
1383 saveData(os, myUseBOutsideA);
1384 saveData(os, myBOutsideA);
1385 saveData(os, myUseABOverlap);
1386 saveData(os, myABOverlap);
1387 saveData(os, myUseAPieces);
1388 saveData(os, myAPieces);
1389 saveData(os, myUseBPieces);
1390 saveData(os, myBPieces);
1391 saveData(os, myUseABPieces);
1392 saveData(os, myABPieces);
1393 saveData(os, myUseReversedPolys);
1394 saveData(os, myReversedPolys);
1395 saveData(os, myUseAASeamEdges);
1396 saveData(os, myAASeamEdges);
1397 saveData(os, myUseBBSeamEdges);
1398 saveData(os, myBBSeamEdges);
1399 saveData(os, myUseABSeamEdges);
1400 saveData(os, myABSeamEdges);
1401 saveData(os, myDepthInA);
1402 saveData(os, myDepthInB);
1415 loadData(is, myGroupA);
1416 loadData(is, myASurface);
1417 loadData(is, myResolveA);
1418 loadData(is, myGroupB);
1419 loadData(is, myBSurface);
1420 loadData(is, myResolveB);
1421 loadData(is, myBooleanOp);
1422 loadData(is, mySubtractChoices);
1423 loadData(is, myShatterChoices);
1424 loadData(is, myOpenCurvesOnly);
1425 loadData(is, myGenerateAASeams);
1426 loadData(is, myGenerateBBSeams);
1427 loadData(is, myGenerateABSeams);
1428 loadData(is, myWindingOp);
1429 loadData(is, myMergeNbrs);
1430 loadData(is, myDetriangulate);
1431 loadData(is, myRemoveInlinePoints);
1432 loadData(is, myUniqueSeams);
1433 loadData(is, myCorrectNormals);
1434 loadData(is, myUseAxAPolys);
1435 loadData(is, myAxAPolys);
1436 loadData(is, myUseAxBPolys);
1437 loadData(is, myAxBPolys);
1438 loadData(is, myUseAxAList);
1439 loadData(is, myAxAList);
1440 loadData(is, myUseAxBList);
1441 loadData(is, myAxBList);
1442 loadData(is, myCollapseTinyEdges);
1443 loadData(is, myLengthThreshold);
1444 loadData(is, myUseAPolys);
1445 loadData(is, myAPolys);
1446 loadData(is, myUseAInsideB);
1447 loadData(is, myAInsideB);
1448 loadData(is, myUseAOutsideB);
1449 loadData(is, myAOutsideB);
1450 loadData(is, myUseBPolys);
1451 loadData(is, myBPolys);
1452 loadData(is, myUseBInsideA);
1453 loadData(is, myBInsideA);
1454 loadData(is, myUseBOutsideA);
1455 loadData(is, myBOutsideA);
1456 loadData(is, myUseABOverlap);
1457 loadData(is, myABOverlap);
1458 loadData(is, myUseAPieces);
1459 loadData(is, myAPieces);
1460 loadData(is, myUseBPieces);
1461 loadData(is, myBPieces);
1462 loadData(is, myUseABPieces);
1463 loadData(is, myABPieces);
1464 loadData(is, myUseReversedPolys);
1465 loadData(is, myReversedPolys);
1466 loadData(is, myUseAASeamEdges);
1467 loadData(is, myAASeamEdges);
1468 loadData(is, myUseBBSeamEdges);
1469 loadData(is, myBBSeamEdges);
1470 loadData(is, myUseABSeamEdges);
1471 loadData(is, myABSeamEdges);
1472 loadData(is, myDepthInA);
1473 loadData(is, myDepthInB);
1483 if (!thissop)
return getGroupA();
1485 OP_Utils::evalOpParm(result, thissop,
"agroup", cookparms.
getCookTime(), 0);
1493 if (!thissop)
return getASurface();
1495 OP_Utils::evalOpParm(result, thissop,
"asurface", cookparms.
getCookTime(), 0);
1503 if (!thissop)
return getResolveA();
1505 OP_Utils::evalOpParm(result, thissop,
"resolvea", cookparms.
getCookTime(), 0);
1513 if (!thissop)
return getGroupB();
1515 OP_Utils::evalOpParm(result, thissop,
"bgroup", cookparms.
getCookTime(), 0);
1523 if (!thissop)
return getBSurface();
1525 OP_Utils::evalOpParm(result, thissop,
"bsurface", cookparms.
getCookTime(), 0);
1533 if (!thissop)
return getResolveB();
1535 OP_Utils::evalOpParm(result, thissop,
"resolveb", cookparms.
getCookTime(), 0);
1543 if (!thissop)
return getBooleanOp();
1545 OP_Utils::evalOpParm(result, thissop,
"booleanop", cookparms.
getCookTime(), 0);
1553 if (!thissop)
return getSubtractChoices();
1555 OP_Utils::evalOpParm(result, thissop,
"subtractchoices", cookparms.
getCookTime(), 0);
1563 if (!thissop)
return getShatterChoices();
1565 OP_Utils::evalOpParm(result, thissop,
"shatterchoices", cookparms.
getCookTime(), 0);
1573 if (!thissop)
return getOpenCurvesOnly();
1575 OP_Utils::evalOpParm(result, thissop,
"opencurvesonly", cookparms.
getCookTime(), 0);
1583 if (!thissop)
return getGenerateAASeams();
1585 OP_Utils::evalOpParm(result, thissop,
"generateaaseams", cookparms.
getCookTime(), 0);
1593 if (!thissop)
return getGenerateBBSeams();
1595 OP_Utils::evalOpParm(result, thissop,
"generatebbseams", cookparms.
getCookTime(), 0);
1603 if (!thissop)
return getGenerateABSeams();
1605 OP_Utils::evalOpParm(result, thissop,
"generateabseams", cookparms.
getCookTime(), 0);
1613 if (!thissop)
return getWindingOp();
1615 OP_Utils::evalOpParm(result, thissop,
"windingop", cookparms.
getCookTime(), 0);
1623 if (!thissop)
return getMergeNbrs();
1625 OP_Utils::evalOpParm(result, thissop,
"mergenbrs", cookparms.
getCookTime(), 0);
1633 if (!thissop)
return getDetriangulate();
1635 OP_Utils::evalOpParm(result, thissop,
"detriangulate", cookparms.
getCookTime(), 0);
1643 if (!thissop)
return getRemoveInlinePoints();
1645 OP_Utils::evalOpParm(result, thissop,
"removeinlinepoints", cookparms.
getCookTime(), 0);
1653 if (!thissop)
return getUniqueSeams();
1655 OP_Utils::evalOpParm(result, thissop,
"uniqueseams", cookparms.
getCookTime(), 0);
1663 if (!thissop)
return getCorrectNormals();
1665 OP_Utils::evalOpParm(result, thissop,
"correctnormals", cookparms.
getCookTime(), 0);
1673 if (!thissop)
return getUseAxAPolys();
1675 OP_Utils::evalOpParm(result, thissop,
"useaxapolys", cookparms.
getCookTime(), 0);
1683 if (!thissop)
return getAxAPolys();
1685 OP_Utils::evalOpParm(result, thissop,
"axapolys", cookparms.
getCookTime(), 0);
1693 if (!thissop)
return getUseAxBPolys();
1695 OP_Utils::evalOpParm(result, thissop,
"useaxbpolys", cookparms.
getCookTime(), 0);
1703 if (!thissop)
return getAxBPolys();
1705 OP_Utils::evalOpParm(result, thissop,
"axbpolys", cookparms.
getCookTime(), 0);
1713 if (!thissop)
return getUseAxAList();
1715 OP_Utils::evalOpParm(result, thissop,
"useaxalist", cookparms.
getCookTime(), 0);
1723 if (!thissop)
return getAxAList();
1725 OP_Utils::evalOpParm(result, thissop,
"axalist", cookparms.
getCookTime(), 0);
1733 if (!thissop)
return getUseAxBList();
1735 OP_Utils::evalOpParm(result, thissop,
"useaxblist", cookparms.
getCookTime(), 0);
1743 if (!thissop)
return getAxBList();
1745 OP_Utils::evalOpParm(result, thissop,
"axblist", cookparms.
getCookTime(), 0);
1753 if (!thissop)
return getCollapseTinyEdges();
1755 OP_Utils::evalOpParm(result, thissop,
"collapsetinyedges", cookparms.
getCookTime(), 0);
1763 if (!thissop)
return getLengthThreshold();
1765 OP_Utils::evalOpParm(result, thissop,
"lengththreshold", cookparms.
getCookTime(), 0);
1773 if (!thissop)
return getUseAPolys();
1775 OP_Utils::evalOpParm(result, thissop,
"useapolys", cookparms.
getCookTime(), 0);
1783 if (!thissop)
return getAPolys();
1785 OP_Utils::evalOpParm(result, thissop,
"apolys", cookparms.
getCookTime(), 0);
1793 if (!thissop)
return getUseAInsideB();
1795 OP_Utils::evalOpParm(result, thissop,
"useainsideb", cookparms.
getCookTime(), 0);
1803 if (!thissop)
return getAInsideB();
1805 OP_Utils::evalOpParm(result, thissop,
"ainsideb", cookparms.
getCookTime(), 0);
1813 if (!thissop)
return getUseAOutsideB();
1815 OP_Utils::evalOpParm(result, thissop,
"useaoutsideb", cookparms.
getCookTime(), 0);
1823 if (!thissop)
return getAOutsideB();
1825 OP_Utils::evalOpParm(result, thissop,
"aoutsideb", cookparms.
getCookTime(), 0);
1833 if (!thissop)
return getUseBPolys();
1835 OP_Utils::evalOpParm(result, thissop,
"usebpolys", cookparms.
getCookTime(), 0);
1843 if (!thissop)
return getBPolys();
1845 OP_Utils::evalOpParm(result, thissop,
"bpolys", cookparms.
getCookTime(), 0);
1853 if (!thissop)
return getUseBInsideA();
1855 OP_Utils::evalOpParm(result, thissop,
"usebinsidea", cookparms.
getCookTime(), 0);
1863 if (!thissop)
return getBInsideA();
1865 OP_Utils::evalOpParm(result, thissop,
"binsidea", cookparms.
getCookTime(), 0);
1873 if (!thissop)
return getUseBOutsideA();
1875 OP_Utils::evalOpParm(result, thissop,
"useboutsidea", cookparms.
getCookTime(), 0);
1883 if (!thissop)
return getBOutsideA();
1885 OP_Utils::evalOpParm(result, thissop,
"boutsidea", cookparms.
getCookTime(), 0);
1893 if (!thissop)
return getUseABOverlap();
1895 OP_Utils::evalOpParm(result, thissop,
"useaboverlap", cookparms.
getCookTime(), 0);
1903 if (!thissop)
return getABOverlap();
1905 OP_Utils::evalOpParm(result, thissop,
"aboverlap", cookparms.
getCookTime(), 0);
1913 if (!thissop)
return getUseAPieces();
1915 OP_Utils::evalOpParm(result, thissop,
"useaonlypieces", cookparms.
getCookTime(), 0);
1923 if (!thissop)
return getAPieces();
1925 OP_Utils::evalOpParm(result, thissop,
"aonlypieces", cookparms.
getCookTime(), 0);
1933 if (!thissop)
return getUseBPieces();
1935 OP_Utils::evalOpParm(result, thissop,
"usebonlypieces", cookparms.
getCookTime(), 0);
1943 if (!thissop)
return getBPieces();
1945 OP_Utils::evalOpParm(result, thissop,
"bonlypieces", cookparms.
getCookTime(), 0);
1953 if (!thissop)
return getUseABPieces();
1955 OP_Utils::evalOpParm(result, thissop,
"useabpieces", cookparms.
getCookTime(), 0);
1963 if (!thissop)
return getABPieces();
1965 OP_Utils::evalOpParm(result, thissop,
"abpieces", cookparms.
getCookTime(), 0);
1973 if (!thissop)
return getUseReversedPolys();
1975 OP_Utils::evalOpParm(result, thissop,
"usereversedpolys", cookparms.
getCookTime(), 0);
1983 if (!thissop)
return getReversedPolys();
1985 OP_Utils::evalOpParm(result, thissop,
"reversedpolys", cookparms.
getCookTime(), 0);
1993 if (!thissop)
return getUseAASeamEdges();
1995 OP_Utils::evalOpParm(result, thissop,
"useaaseamedges", cookparms.
getCookTime(), 0);
2003 if (!thissop)
return getAASeamEdges();
2005 OP_Utils::evalOpParm(result, thissop,
"aaseamedges", cookparms.
getCookTime(), 0);
2013 if (!thissop)
return getUseBBSeamEdges();
2015 OP_Utils::evalOpParm(result, thissop,
"usebbseamedges", cookparms.
getCookTime(), 0);
2023 if (!thissop)
return getBBSeamEdges();
2025 OP_Utils::evalOpParm(result, thissop,
"bbseamedges", cookparms.
getCookTime(), 0);
2033 if (!thissop)
return getUseABSeamEdges();
2035 OP_Utils::evalOpParm(result, thissop,
"useabseamedges", cookparms.
getCookTime(), 0);
2043 if (!thissop)
return getABSeamEdges();
2045 OP_Utils::evalOpParm(result, thissop,
"abseamedges", cookparms.
getCookTime(), 0);
2053 if (!thissop)
return getDepthInA();
2055 OP_Utils::evalOpParm(result, thissop,
"adepth", cookparms.
getCookTime(), 0);
2063 if (!thissop)
return getDepthInB();
2065 OP_Utils::evalOpParm(result, thissop,
"bdepth", cookparms.
getCookTime(), 0);
2077 int64 mySubtractChoices;
2078 int64 myShatterChoices;
2079 bool myOpenCurvesOnly;
2080 bool myGenerateAASeams;
2081 bool myGenerateBBSeams;
2082 bool myGenerateABSeams;
2085 int64 myDetriangulate;
2086 bool myRemoveInlinePoints;
2088 bool myCorrectNormals;
2097 bool myCollapseTinyEdges;
2103 bool myUseAOutsideB;
2109 bool myUseBOutsideA;
2111 bool myUseABOverlap;
2119 bool myUseReversedPolys;
2121 bool myUseAASeamEdges;
2123 bool myUseBBSeamEdges;
2125 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
GLsizei const GLfloat * value
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)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
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)
virtual UT_StringHolder baseGetSignature() const
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
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
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)
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