23 namespace SOP_OpenCLEnums
36 using namespace UT::Literal;
55 using namespace UT::Literal;
74 using namespace UT::Literal;
99 using namespace UT::Literal;
100 switch (enum_value) {
125 using namespace UT::Literal;
126 switch (enum_value) {
147 using namespace UT::Literal;
148 switch (enum_value) {
168 using namespace UT::Literal;
169 switch (enum_value) {
189 using namespace UT::Literal;
190 switch (enum_value) {
210 using namespace UT::Literal;
211 switch (enum_value) {
260 bindings_name =
""_UTsh;
263 bindings_rampsize = 1024;
265 bindings_volume =
""_UTsh;
266 bindings_vdbtype = 0;
267 bindings_forcealign =
true;
268 bindings_resolution =
false;
269 bindings_voxelsize =
false;
270 bindings_xformtoworld =
false;
271 bindings_xformtovoxel =
false;
272 bindings_attribute =
""_UTsh;
273 bindings_attribclass = 2;
274 bindings_attribtype = 0;
275 bindings_attribsize = 1;
276 bindings_precision = 2;
277 bindings_readable =
true;
278 bindings_writeable =
false;
279 bindings_optional =
false;
280 bindings_defval =
false;
286 bindings_timescale = 0;
334 for (
int i = 0; i < list.
entries(); i++)
344 if (list(i).bindings_ramp)
348 list(i).bindings_ramp->save(os);
362 buf.
appendSprintf(
"%s", (list(i).bindings_forcealign) ?
"true" :
"false");
364 buf.
appendSprintf(
"%s", (list(i).bindings_resolution) ?
"true" :
"false");
366 buf.
appendSprintf(
"%s", (list(i).bindings_voxelsize) ?
"true" :
"false");
368 buf.
appendSprintf(
"%s", (list(i).bindings_xformtoworld) ?
"true" :
"false");
370 buf.
appendSprintf(
"%s", (list(i).bindings_xformtovoxel) ?
"true" :
"false");
382 buf.
appendSprintf(
"%s", (list(i).bindings_readable) ?
"true" :
"false");
384 buf.
appendSprintf(
"%s", (list(i).bindings_writeable) ?
"true" :
"false");
386 buf.
appendSprintf(
"%s", (list(i).bindings_optional) ?
"true" :
"false");
388 buf.
appendSprintf(
"%s", (list(i).bindings_defval) ?
"true" :
"false");
394 buf.
appendSprintf(
"(%f, %f)", list(i).bindings_v2val.x(), list(i).bindings_v2val.y());
396 buf.
appendSprintf(
"(%f, %f, %f)", list(i).bindings_v3val.x(), list(i).bindings_v3val.y(), list(i).bindings_v3val.z());
398 buf.
appendSprintf(
"(%f, %f, %f, %f)", list(i).bindings_v4val.x(), list(i).bindings_v4val.y(), list(i).bindings_v4val.z(), list(i).bindings_v4val.w());
412 myKernelName =
"kernelName"_UTsh;
414 myKernelFile =
""_UTsh;
415 myKernelCode =
""_UTsh;
417 myKernelOptions =
""_UTsh;
418 myKernelOptionAttrib =
""_UTsh;
419 myUseWriteBackKernel =
false;
420 myWriteBackKernelName =
"writeBack"_UTsh;
425 myWorksets_begin =
""_UTsh;
426 myWorksets_length =
""_UTsh;
427 mySingleworkgroup =
false;
435 myImportPrequel =
true;
436 myBindings.setSize(1);
437 myGeneratedCode =
""_UTsh;
450 if (myKernelName != src.myKernelName)
return false;
451 if (myUseCode != src.myUseCode)
return false;
452 if (myKernelFile != src.myKernelFile)
return false;
453 if (myKernelCode != src.myKernelCode)
return false;
454 if (myAtBinding != src.myAtBinding)
return false;
455 if (myKernelOptions != src.myKernelOptions)
return false;
456 if (myKernelOptionAttrib != src.myKernelOptionAttrib)
return false;
457 if (myUseWriteBackKernel != src.myUseWriteBackKernel)
return false;
458 if (myWriteBackKernelName != src.myWriteBackKernelName)
return false;
459 if (myRecompile != src.myRecompile)
return false;
460 if (myRunOver != src.myRunOver)
return false;
461 if (myIterations != src.myIterations)
return false;
462 if (myIteration != src.myIteration)
return false;
463 if (myWorksets_begin != src.myWorksets_begin)
return false;
464 if (myWorksets_length != src.myWorksets_length)
return false;
465 if (mySingleworkgroup != src.mySingleworkgroup)
return false;
466 if (myFinish != src.myFinish)
return false;
467 if (myTime != src.myTime)
return false;
468 if (myTimeInc != src.myTimeInc)
return false;
469 if (myTimescale != src.myTimescale)
return false;
470 if (myTimemethod != src.myTimemethod)
return false;
471 if (myXnoise != src.myXnoise)
return false;
472 if (myPrecision != src.myPrecision)
return false;
473 if (myImportPrequel != src.myImportPrequel)
return false;
474 if (myBindings != src.myBindings)
return false;
475 if (myGeneratedCode != src.myGeneratedCode)
return false;
500 myKernelName =
"kernelName"_UTsh;
502 graph->
evalOpParm(myKernelName, nodeidx,
"kernelname", time, graph->
isDirect()?
nullptr:depnode);
505 graph->
evalOpParm(myUseCode, nodeidx,
"usecode", time, graph->
isDirect()?
nullptr:depnode);
506 myKernelFile =
""_UTsh;
507 if (
true && ( (
true&&!(((getUseCode()!=0)))) ) )
508 graph->
evalOpParm(myKernelFile, nodeidx,
"kernelfile", time, graph->
isDirect()?
nullptr:depnode);
509 myKernelCode =
""_UTsh;
510 if (
true && ( (
true&&!(((getUseCode()==0)))) ) )
511 graph->
evalOpParm(myKernelCode, nodeidx,
"kernelcode", time, graph->
isDirect()?
nullptr:depnode);
513 if (
true && ( (
true&&!(((getUseCode()==0)))) ) )
514 graph->
evalOpParm(myAtBinding, nodeidx,
"atbinding", time, graph->
isDirect()?
nullptr:depnode);
515 myKernelOptions =
""_UTsh;
517 graph->
evalOpParm(myKernelOptions, nodeidx,
"kerneloptions", time, graph->
isDirect()?
nullptr:depnode);
518 myKernelOptionAttrib =
""_UTsh;
520 graph->
evalOpParm(myKernelOptionAttrib, nodeidx,
"kerneloptionattrib", time, graph->
isDirect()?
nullptr:depnode);
521 myUseWriteBackKernel =
false;
523 graph->
evalOpParm(myUseWriteBackKernel, nodeidx,
"usewritebackkernel", time, graph->
isDirect()?
nullptr:depnode);
524 myWriteBackKernelName =
"writeBack"_UTsh;
525 if (
true && ( (
true&&!(((getUseWriteBackKernel()==0)))) ) )
526 graph->
evalOpParm(myWriteBackKernelName, nodeidx,
"writebackkernelname", time, graph->
isDirect()?
nullptr:depnode);
529 graph->
evalOpParm(myRecompile, nodeidx,
"recompile", time, graph->
isDirect()?
nullptr:depnode);
532 graph->
evalOpParm(myRunOver, nodeidx,
"runover", time, graph->
isDirect()?
nullptr:depnode);
535 graph->
evalOpParm(myIterations, nodeidx,
"iterations", time, graph->
isDirect()?
nullptr:depnode);
538 graph->
evalOpParm(myIteration, nodeidx,
"iteration", time, graph->
isDirect()?
nullptr:depnode);
539 myWorksets_begin =
""_UTsh;
540 if (
true && ( (
true&&!(((
int64(getRunOver())!=2)))) ) )
541 graph->
evalOpParm(myWorksets_begin, nodeidx,
"worksets_begin", time, graph->
isDirect()?
nullptr:depnode);
542 myWorksets_length =
""_UTsh;
543 if (
true && ( (
true&&!(((
int64(getRunOver())!=2)))) ) )
544 graph->
evalOpParm(myWorksets_length, nodeidx,
"worksets_length", time, graph->
isDirect()?
nullptr:depnode);
545 mySingleworkgroup =
false;
546 if (
true && ( (
true&&!(((
int64(getRunOver())!=2)))) ) )
547 graph->
evalOpParm(mySingleworkgroup, nodeidx,
"singleworkgroup", time, graph->
isDirect()?
nullptr:depnode);
550 graph->
evalOpParm(myFinish, nodeidx,
"finish", time, graph->
isDirect()?
nullptr:depnode);
556 graph->
evalOpParm(myTimeInc, nodeidx,
"timeinc", time, graph->
isDirect()?
nullptr:depnode);
558 if (
true && ( (
true&&!(((getTimeInc()==0)))) ) )
559 graph->
evalOpParm(myTimescale, nodeidx,
"timescale", time, graph->
isDirect()?
nullptr:depnode);
561 if (
true && ( (
true&&!(((getTimeInc()==0)))) ) )
562 graph->
evalOpParm(myTimemethod, nodeidx,
"timemethod", time, graph->
isDirect()?
nullptr:depnode);
565 graph->
evalOpParm(myXnoise, nodeidx,
"xnoise", time, graph->
isDirect()?
nullptr:depnode);
568 graph->
evalOpParm(myPrecision, nodeidx,
"precision", time, graph->
isDirect()?
nullptr:depnode);
569 myImportPrequel =
true;
571 graph->
evalOpParm(myImportPrequel, nodeidx,
"importprequel", time, graph->
isDirect()?
nullptr:depnode);
575 graph->
evalOpParm(length, nodeidx,
"bindings", time, graph->
isDirect()?
nullptr:depnode);
576 if (length < 0) length = 0;
577 myBindings.setSize(length);
584 auto && _curentry = myBindings(i);
586 _curentry.bindings_name =
""_UTsh;
588 graph->
evalOpParmInst(_curentry.bindings_name, nodeidx,
"bindings#_name", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
589 _curentry.bindings_type = 0;
591 graph->
evalOpParmInst(_curentry.bindings_type, nodeidx,
"bindings#_type", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
593 if (
true && ( (
true&&!(((_curentry.bindings_type!=4)))) ) )
594 graph->
evalOpParmInst(_curentry.bindings_ramp, nodeidx,
"bindings#_ramp", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
595 _curentry.bindings_rampsize = 1024;
596 if (
true && ( (
true&&!(((_curentry.bindings_type!=4)))) ) )
597 graph->
evalOpParmInst(_curentry.bindings_rampsize, nodeidx,
"bindings#_rampsize", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
598 _curentry.bindings_input = 0;
599 if (
true && ( (
true&&!(((_curentry.bindings_type!=6)&&(_curentry.bindings_type!=7)&&(_curentry.bindings_type!=5)))) ) )
600 graph->
evalOpParmInst(_curentry.bindings_input, nodeidx,
"bindings#_input", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
601 _curentry.bindings_volume =
""_UTsh;
602 if (
true && ( (
true&&!(((_curentry.bindings_type!=6)&&(_curentry.bindings_type!=7)))) ) )
603 graph->
evalOpParmInst(_curentry.bindings_volume, nodeidx,
"bindings#_volume", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
604 _curentry.bindings_vdbtype = 0;
605 if (
true && ( (
true&&!(((_curentry.bindings_type!=7)))) ) )
606 graph->
evalOpParmInst(_curentry.bindings_vdbtype, nodeidx,
"bindings#_vdbtype", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
607 _curentry.bindings_forcealign =
true;
608 if (
true && ( (
true&&!(((_curentry.bindings_type!=6)))) ) )
609 graph->
evalOpParmInst(_curentry.bindings_forcealign, nodeidx,
"bindings#_forcealign", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
610 _curentry.bindings_resolution =
false;
611 if (
true && ( (
true&&!(((_curentry.bindings_type!=6))||((_curentry.bindings_forcealign==1)))) ) )
612 graph->
evalOpParmInst(_curentry.bindings_resolution, nodeidx,
"bindings#_resolution", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
613 _curentry.bindings_voxelsize =
false;
614 if (
true && ( (
true&&!(((_curentry.bindings_type!=6)&&(_curentry.bindings_type!=7))||((_curentry.bindings_forcealign==1)&&(_curentry.bindings_type==6)))) ) )
615 graph->
evalOpParmInst(_curentry.bindings_voxelsize, nodeidx,
"bindings#_voxelsize", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
616 _curentry.bindings_xformtoworld =
false;
617 if (
true && ( (
true&&!(((_curentry.bindings_type!=6)&&(_curentry.bindings_type!=7))||((_curentry.bindings_forcealign==1)&&(_curentry.bindings_type==6)))) ) )
618 graph->
evalOpParmInst(_curentry.bindings_xformtoworld, nodeidx,
"bindings#_xformtoworld", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
619 _curentry.bindings_xformtovoxel =
false;
620 if (
true && ( (
true&&!(((_curentry.bindings_type!=6)&&(_curentry.bindings_type!=7))||((_curentry.bindings_forcealign==1)&&(_curentry.bindings_type==6)))) ) )
621 graph->
evalOpParmInst(_curentry.bindings_xformtovoxel, nodeidx,
"bindings#_xformtovoxel", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
622 _curentry.bindings_attribute =
""_UTsh;
623 if (
true && ( (
true&&!(((_curentry.bindings_type!=5)))) ) )
624 graph->
evalOpParmInst(_curentry.bindings_attribute, nodeidx,
"bindings#_attribute", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
625 _curentry.bindings_attribclass = 2;
626 if (
true && ( (
true&&!(((_curentry.bindings_type!=5)))) ) )
627 graph->
evalOpParmInst(_curentry.bindings_attribclass, nodeidx,
"bindings#_attribclass", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
628 _curentry.bindings_attribtype = 0;
629 if (
true && ( (
true&&!(((_curentry.bindings_type!=5)))) ) )
630 graph->
evalOpParmInst(_curentry.bindings_attribtype, nodeidx,
"bindings#_attribtype", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
631 _curentry.bindings_attribsize = 1;
632 if (
true && ( (
true&&!(((_curentry.bindings_type!=5)))) ) )
633 graph->
evalOpParmInst(_curentry.bindings_attribsize, nodeidx,
"bindings#_attribsize", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
634 _curentry.bindings_precision = 2;
636 graph->
evalOpParmInst(_curentry.bindings_precision, nodeidx,
"bindings#_precision", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
637 _curentry.bindings_readable =
true;
638 if (
true && ( (
true&&!(((_curentry.bindings_type!=5)&&(_curentry.bindings_type!=6)))) ) )
639 graph->
evalOpParmInst(_curentry.bindings_readable, nodeidx,
"bindings#_readable", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
640 _curentry.bindings_writeable =
false;
641 if (
true && ( (
true&&!(((_curentry.bindings_type!=5)&&(_curentry.bindings_type!=6)&&(_curentry.bindings_type!=7)))) ) )
642 graph->
evalOpParmInst(_curentry.bindings_writeable, nodeidx,
"bindings#_writeable", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
643 _curentry.bindings_optional =
false;
644 if (
true && ( (
true&&!(((_curentry.bindings_type!=5)&&(_curentry.bindings_type!=6)&&(_curentry.bindings_type!=7)))) ) )
645 graph->
evalOpParmInst(_curentry.bindings_optional, nodeidx,
"bindings#_optional", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
646 _curentry.bindings_defval =
false;
647 if (
true && ( (
true&&!(((_curentry.bindings_type!=5)&&(_curentry.bindings_type!=6)&&(_curentry.bindings_type!=7))||((_curentry.bindings_optional==0))||((_curentry.bindings_attribtype!=1)&&(_curentry.bindings_attribtype!=0)))) ) )
648 graph->
evalOpParmInst(_curentry.bindings_defval, nodeidx,
"bindings#_defval", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
649 _curentry.bindings_intval = 0;
650 if (
true && ( (
true&&!(((_curentry.bindings_type!=0)&&(_curentry.bindings_type!=5))||((_curentry.bindings_type==5)&&(_curentry.bindings_optional==0))||((_curentry.bindings_type==5)&&(_curentry.bindings_defval==0))||((_curentry.bindings_type==5)&&(_curentry.bindings_attribtype!=1)))) ) )
651 graph->
evalOpParmInst(_curentry.bindings_intval, nodeidx,
"bindings#_intval", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
652 _curentry.bindings_fval = 0;
653 if (
true && ( (
true&&!(((_curentry.bindings_type!=1)&&(_curentry.bindings_type!=5)&&(_curentry.bindings_type!=6)&&(_curentry.bindings_type!=7))||((_curentry.bindings_type==5)&&(_curentry.bindings_optional==0))||((_curentry.bindings_type==5)&&(_curentry.bindings_defval==0))||((_curentry.bindings_type==5)&&(_curentry.bindings_attribtype!=0))||((_curentry.bindings_type==5)&&(_curentry.bindings_attribtype==0)&&(_curentry.bindings_attribsize==2))||((_curentry.bindings_type==5)&&(_curentry.bindings_attribtype==0)&&(_curentry.bindings_attribsize==3))||((_curentry.bindings_type==5)&&(_curentry.bindings_attribtype==0)&&(_curentry.bindings_attribsize==4))||((_curentry.bindings_type==6)&&(_curentry.bindings_optional==0))||((_curentry.bindings_type==6)&&(_curentry.bindings_defval==0))||((_curentry.bindings_type==7)&&(_curentry.bindings_optional==0))||((_curentry.bindings_type==7)&&(_curentry.bindings_defval==0)))) ) )
654 graph->
evalOpParmInst(_curentry.bindings_fval, nodeidx,
"bindings#_fval", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
656 if (
true && ( (
true&&!(((_curentry.bindings_type!=5))||((_curentry.bindings_type==5)&&(_curentry.bindings_optional==0))||((_curentry.bindings_type==5)&&(_curentry.bindings_defval==0))||((_curentry.bindings_type==5)&&(_curentry.bindings_attribtype!=0))||((_curentry.bindings_type==5)&&(_curentry.bindings_attribtype==0)&&(_curentry.bindings_attribsize!=2)))) ) )
657 graph->
evalOpParmInst(_curentry.bindings_v2val, nodeidx,
"bindings#_v2val", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
659 if (
true && ( (
true&&!(((_curentry.bindings_type!=2)&&(_curentry.bindings_type!=5))||((_curentry.bindings_type==5)&&(_curentry.bindings_optional==0))||((_curentry.bindings_type==5)&&(_curentry.bindings_defval==0))||((_curentry.bindings_type==5)&&(_curentry.bindings_attribtype!=0))||((_curentry.bindings_type==5)&&(_curentry.bindings_attribtype==0)&&(_curentry.bindings_attribsize!=3)))) ) )
660 graph->
evalOpParmInst(_curentry.bindings_v3val, nodeidx,
"bindings#_v3val", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
662 if (
true && ( (
true&&!(((_curentry.bindings_type!=3)&&(_curentry.bindings_type!=5))||((_curentry.bindings_type==5)&&(_curentry.bindings_optional==0))||((_curentry.bindings_type==5)&&(_curentry.bindings_defval==0))||((_curentry.bindings_type==5)&&(_curentry.bindings_attribtype!=0))||((_curentry.bindings_type==5)&&(_curentry.bindings_attribtype==0)&&(_curentry.bindings_attribsize!=4)))) ) )
663 graph->
evalOpParmInst(_curentry.bindings_v4val, nodeidx,
"bindings#_v4val", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
664 _curentry.bindings_timescale = 0;
665 if (
true && ( (
true&&!(((_curentry.bindings_type!=1)))) ) )
666 graph->
evalOpParmInst(_curentry.bindings_timescale, nodeidx,
"bindings#_timescale", parmidx, offsets, time, graph->
isDirect()?
nullptr:depnode, 2-1);
672 myGeneratedCode =
""_UTsh;
673 if (
true && ( (
true&&!((((graph->
getInput(nodeidx,0)>=0)==0))||(((graph->
getInput(nodeidx,0)>=0)==1)))) ) )
674 graph->
evalOpParm(myGeneratedCode, nodeidx,
"generatedcode", time, graph->
isDirect()?
nullptr:depnode);
690 template <
typename T>
697 if (idx.
size() != instance.
size()+1)
702 coerceValue(value, myKernelName);
705 coerceValue(value, myUseCode);
708 coerceValue(value, myKernelFile);
711 coerceValue(value, myKernelCode);
714 coerceValue(value, myAtBinding);
717 coerceValue(value, myKernelOptions);
720 coerceValue(value, myKernelOptionAttrib);
723 coerceValue(value, myUseWriteBackKernel);
726 coerceValue(value, myWriteBackKernelName);
729 coerceValue(value, myRecompile);
732 coerceValue(value, myRunOver);
735 coerceValue(value, myIterations);
738 coerceValue(value, myIteration);
741 coerceValue(value, myWorksets_begin);
744 coerceValue(value, myWorksets_length);
747 coerceValue(value, mySingleworkgroup);
750 coerceValue(value, myFinish);
753 coerceValue(value, myTime);
756 coerceValue(value, myTimeInc);
759 coerceValue(value, myTimescale);
762 coerceValue(value, myTimemethod);
765 coerceValue(value, myXnoise);
768 coerceValue(value, myPrecision);
771 coerceValue(value, myImportPrequel);
775 coerceValue(value, myBindings.entries());
776 else if (instance[0] < myBindings.entries())
778 auto && _data = myBindings(instance[0]);
782 coerceValue(value, _data.bindings_name);
785 coerceValue(value, _data.bindings_type);
788 coerceValue(value, _data.bindings_ramp);
791 coerceValue(value, _data.bindings_rampsize);
794 coerceValue(value, _data.bindings_input);
797 coerceValue(value, _data.bindings_volume);
800 coerceValue(value, _data.bindings_vdbtype);
803 coerceValue(value, _data.bindings_forcealign);
806 coerceValue(value, _data.bindings_resolution);
809 coerceValue(value, _data.bindings_voxelsize);
812 coerceValue(value, _data.bindings_xformtoworld);
815 coerceValue(value, _data.bindings_xformtovoxel);
818 coerceValue(value, _data.bindings_attribute);
821 coerceValue(value, _data.bindings_attribclass);
824 coerceValue(value, _data.bindings_attribtype);
827 coerceValue(value, _data.bindings_attribsize);
830 coerceValue(value, _data.bindings_precision);
833 coerceValue(value, _data.bindings_readable);
836 coerceValue(value, _data.bindings_writeable);
839 coerceValue(value, _data.bindings_optional);
842 coerceValue(value, _data.bindings_defval);
845 coerceValue(value, _data.bindings_intval);
848 coerceValue(value, _data.bindings_fval);
851 coerceValue(value, _data.bindings_v2val);
854 coerceValue(value, _data.bindings_v3val);
857 coerceValue(value, _data.bindings_v4val);
860 coerceValue(value, _data.bindings_timescale);
867 coerceValue(value, myGeneratedCode);
883 { doGetParmValue(idx, instance, value); }
885 { doGetParmValue(idx, instance, value); }
887 { doGetParmValue(idx, instance, value); }
889 { doGetParmValue(idx, instance, value); }
891 { doGetParmValue(idx, instance, value); }
893 { doGetParmValue(idx, instance, value); }
895 { doGetParmValue(idx, instance, value); }
897 { doGetParmValue(idx, instance, value); }
899 { doGetParmValue(idx, instance, value); }
901 { doGetParmValue(idx, instance, value); }
903 { doGetParmValue(idx, instance, value); }
905 template <
typename T>
912 if (idx.
size() != instance.
size()+1)
917 coerceValue(myKernelName, ( ( value ) ));
920 coerceValue(myUseCode, ( ( value ) ));
923 coerceValue(myKernelFile, ( ( value ) ));
926 coerceValue(myKernelCode, ( ( value ) ));
929 coerceValue(myAtBinding, ( ( value ) ));
932 coerceValue(myKernelOptions, ( ( value ) ));
935 coerceValue(myKernelOptionAttrib, ( ( value ) ));
938 coerceValue(myUseWriteBackKernel, ( ( value ) ));
941 coerceValue(myWriteBackKernelName, ( ( value ) ));
944 coerceValue(myRecompile, ( ( value ) ));
947 coerceValue(myRunOver, clampMinValue(0, clampMaxValue(3, value ) ));
950 coerceValue(myIterations, ( ( value ) ));
953 coerceValue(myIteration, ( ( value ) ));
956 coerceValue(myWorksets_begin, ( ( value ) ));
959 coerceValue(myWorksets_length, ( ( value ) ));
962 coerceValue(mySingleworkgroup, ( ( value ) ));
965 coerceValue(myFinish, ( ( value ) ));
968 coerceValue(myTime, ( ( value ) ));
971 coerceValue(myTimeInc, ( ( value ) ));
974 coerceValue(myTimescale, ( ( value ) ));
977 coerceValue(myTimemethod, clampMinValue(0, clampMaxValue(1, value ) ));
980 coerceValue(myXnoise, ( ( value ) ));
983 coerceValue(myPrecision, clampMinValue(0, clampMaxValue(3, value ) ));
986 coerceValue(myImportPrequel, ( ( value ) ));
992 coerceValue(newsize, value);
993 if (newsize < 0) newsize = 0;
994 myBindings.setSize(newsize);
1000 myBindings.setSizeIfNeeded(instance[0]+1);
1001 auto && _data = myBindings(instance[0]);
1005 coerceValue(_data.bindings_name, value);
1008 coerceValue(_data.bindings_type, value);
1011 coerceValue(_data.bindings_ramp, value);
1014 coerceValue(_data.bindings_rampsize, value);
1017 coerceValue(_data.bindings_input, value);
1020 coerceValue(_data.bindings_volume, value);
1023 coerceValue(_data.bindings_vdbtype, value);
1026 coerceValue(_data.bindings_forcealign, value);
1029 coerceValue(_data.bindings_resolution, value);
1032 coerceValue(_data.bindings_voxelsize, value);
1035 coerceValue(_data.bindings_xformtoworld, value);
1038 coerceValue(_data.bindings_xformtovoxel, value);
1041 coerceValue(_data.bindings_attribute, value);
1044 coerceValue(_data.bindings_attribclass, value);
1047 coerceValue(_data.bindings_attribtype, value);
1050 coerceValue(_data.bindings_attribsize, value);
1053 coerceValue(_data.bindings_precision, value);
1056 coerceValue(_data.bindings_readable, value);
1059 coerceValue(_data.bindings_writeable, value);
1062 coerceValue(_data.bindings_optional, value);
1065 coerceValue(_data.bindings_defval, value);
1068 coerceValue(_data.bindings_intval, value);
1071 coerceValue(_data.bindings_fval, value);
1074 coerceValue(_data.bindings_v2val, value);
1077 coerceValue(_data.bindings_v3val, value);
1080 coerceValue(_data.bindings_v4val, value);
1083 coerceValue(_data.bindings_timescale, value);
1090 coerceValue(myGeneratedCode, ( ( value ) ));
1097 { doSetParmValue(idx, instance, value); }
1099 { doSetParmValue(idx, instance, value); }
1101 { doSetParmValue(idx, instance, value); }
1103 { doSetParmValue(idx, instance, value); }
1105 { doSetParmValue(idx, instance, value); }
1107 { doSetParmValue(idx, instance, value); }
1109 { doSetParmValue(idx, instance, value); }
1111 { doSetParmValue(idx, instance, value); }
1113 { doSetParmValue(idx, instance, value); }
1115 { doSetParmValue(idx, instance, value); }
1117 { doSetParmValue(idx, instance, value); }
1121 if (idx.
size() == 0)
1135 if (fieldnum.
size() < 1)
1137 switch (fieldnum[0])
1140 return "kernelname";
1144 return "kernelfile";
1146 return "kernelcode";
1150 return "kerneloptions";
1152 return "kerneloptionattrib";
1154 return "usewritebackkernel";
1156 return "writebackkernelname";
1162 return "iterations";
1166 return "worksets_begin";
1168 return "worksets_length";
1170 return "singleworkgroup";
1180 return "timemethod";
1186 return "importprequel";
1188 if (fieldnum.
size() == 1)
1190 switch (fieldnum[1])
1193 return "bindings#_name";
1195 return "bindings#_type";
1197 return "bindings#_ramp";
1199 return "bindings#_rampsize";
1201 return "bindings#_input";
1203 return "bindings#_volume";
1205 return "bindings#_vdbtype";
1207 return "bindings#_forcealign";
1209 return "bindings#_resolution";
1211 return "bindings#_voxelsize";
1213 return "bindings#_xformtoworld";
1215 return "bindings#_xformtovoxel";
1217 return "bindings#_attribute";
1219 return "bindings#_attribclass";
1221 return "bindings#_attribtype";
1223 return "bindings#_attribsize";
1225 return "bindings#_precision";
1227 return "bindings#_readable";
1229 return "bindings#_writeable";
1231 return "bindings#_optional";
1233 return "bindings#_defval";
1235 return "bindings#_intval";
1237 return "bindings#_fval";
1239 return "bindings#_v2val";
1241 return "bindings#_v3val";
1243 return "bindings#_v4val";
1245 return "bindings#_timescale";
1250 return "generatedcode";
1258 if (fieldnum.
size() < 1)
1259 return PARM_UNSUPPORTED;
1260 switch (fieldnum[0])
1265 return PARM_INTEGER;
1271 return PARM_INTEGER;
1277 return PARM_INTEGER;
1281 return PARM_INTEGER;
1283 return PARM_INTEGER;
1285 return PARM_INTEGER;
1287 return PARM_INTEGER;
1293 return PARM_INTEGER;
1295 return PARM_INTEGER;
1297 return PARM_INTEGER;
1299 return PARM_INTEGER;
1303 return PARM_INTEGER;
1305 return PARM_INTEGER;
1307 return PARM_INTEGER;
1309 return PARM_INTEGER;
1311 if (fieldnum.
size() == 1)
1312 return PARM_MULTIPARM;
1313 switch (fieldnum[1])
1318 return PARM_INTEGER;
1322 return PARM_INTEGER;
1324 return PARM_INTEGER;
1328 return PARM_INTEGER;
1330 return PARM_INTEGER;
1332 return PARM_INTEGER;
1334 return PARM_INTEGER;
1336 return PARM_INTEGER;
1338 return PARM_INTEGER;
1342 return PARM_INTEGER;
1344 return PARM_INTEGER;
1346 return PARM_INTEGER;
1348 return PARM_INTEGER;
1350 return PARM_INTEGER;
1352 return PARM_INTEGER;
1354 return PARM_INTEGER;
1356 return PARM_INTEGER;
1358 return PARM_INTEGER;
1362 return PARM_VECTOR2;
1364 return PARM_VECTOR3;
1366 return PARM_VECTOR4;
1368 return PARM_INTEGER;
1371 return PARM_UNSUPPORTED;
1376 return PARM_UNSUPPORTED;
1381 { is.
bread(&v, 1); }
1412 loadData(is, rampdata);
1430 int typelen = colon - data.
buffer();
1442 { UTwrite(os, &v); }
1444 {
int64 iv =
v; UTwrite(os, &iv); }
1446 { UTwrite<fpreal64>(os, &
v); }
1448 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
1450 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1451 UTwrite<fpreal64>(os, &v.
z()); }
1453 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1454 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
1466 if (s) s->save(ostr);
1467 result = ostr.
str();
1468 saveData(os, result);
1475 ostr << s->getDataTypeToken();
1477 s->saveBinary(ostr);
1479 result = ostr.
str();
1480 saveData(os, result);
1488 saveData(os, myKernelName);
1489 saveData(os, myUseCode);
1490 saveData(os, myKernelFile);
1491 saveData(os, myKernelCode);
1492 saveData(os, myAtBinding);
1493 saveData(os, myKernelOptions);
1494 saveData(os, myKernelOptionAttrib);
1495 saveData(os, myUseWriteBackKernel);
1496 saveData(os, myWriteBackKernelName);
1497 saveData(os, myRecompile);
1498 saveData(os, myRunOver);
1499 saveData(os, myIterations);
1500 saveData(os, myIteration);
1501 saveData(os, myWorksets_begin);
1502 saveData(os, myWorksets_length);
1503 saveData(os, mySingleworkgroup);
1504 saveData(os, myFinish);
1505 saveData(os, myTime);
1506 saveData(os, myTimeInc);
1507 saveData(os, myTimescale);
1508 saveData(os, myTimemethod);
1509 saveData(os, myXnoise);
1510 saveData(os, myPrecision);
1511 saveData(os, myImportPrequel);
1514 UTwrite(os, &length);
1517 auto && _curentry = myBindings(i);
1519 saveData(os, _curentry.bindings_name);
1520 saveData(os, _curentry.bindings_type);
1521 saveData(os, _curentry.bindings_ramp);
1522 saveData(os, _curentry.bindings_rampsize);
1523 saveData(os, _curentry.bindings_input);
1524 saveData(os, _curentry.bindings_volume);
1525 saveData(os, _curentry.bindings_vdbtype);
1526 saveData(os, _curentry.bindings_forcealign);
1527 saveData(os, _curentry.bindings_resolution);
1528 saveData(os, _curentry.bindings_voxelsize);
1529 saveData(os, _curentry.bindings_xformtoworld);
1530 saveData(os, _curentry.bindings_xformtovoxel);
1531 saveData(os, _curentry.bindings_attribute);
1532 saveData(os, _curentry.bindings_attribclass);
1533 saveData(os, _curentry.bindings_attribtype);
1534 saveData(os, _curentry.bindings_attribsize);
1535 saveData(os, _curentry.bindings_precision);
1536 saveData(os, _curentry.bindings_readable);
1537 saveData(os, _curentry.bindings_writeable);
1538 saveData(os, _curentry.bindings_optional);
1539 saveData(os, _curentry.bindings_defval);
1540 saveData(os, _curentry.bindings_intval);
1541 saveData(os, _curentry.bindings_fval);
1542 saveData(os, _curentry.bindings_v2val);
1543 saveData(os, _curentry.bindings_v3val);
1544 saveData(os, _curentry.bindings_v4val);
1545 saveData(os, _curentry.bindings_timescale);
1549 saveData(os, myGeneratedCode);
1562 loadData(is, myKernelName);
1563 loadData(is, myUseCode);
1564 loadData(is, myKernelFile);
1565 loadData(is, myKernelCode);
1566 loadData(is, myAtBinding);
1567 loadData(is, myKernelOptions);
1568 loadData(is, myKernelOptionAttrib);
1569 loadData(is, myUseWriteBackKernel);
1570 loadData(is, myWriteBackKernelName);
1571 loadData(is, myRecompile);
1572 loadData(is, myRunOver);
1573 loadData(is, myIterations);
1574 loadData(is, myIteration);
1575 loadData(is, myWorksets_begin);
1576 loadData(is, myWorksets_length);
1577 loadData(is, mySingleworkgroup);
1578 loadData(is, myFinish);
1579 loadData(is, myTime);
1580 loadData(is, myTimeInc);
1581 loadData(is, myTimescale);
1582 loadData(is, myTimemethod);
1583 loadData(is, myXnoise);
1584 loadData(is, myPrecision);
1585 loadData(is, myImportPrequel);
1588 is.
read(&length, 1);
1589 myBindings.setSize(length);
1592 auto && _curentry = myBindings(i);
1594 loadData(is, _curentry.bindings_name);
1595 loadData(is, _curentry.bindings_type);
1596 loadData(is, _curentry.bindings_ramp);
1597 loadData(is, _curentry.bindings_rampsize);
1598 loadData(is, _curentry.bindings_input);
1599 loadData(is, _curentry.bindings_volume);
1600 loadData(is, _curentry.bindings_vdbtype);
1601 loadData(is, _curentry.bindings_forcealign);
1602 loadData(is, _curentry.bindings_resolution);
1603 loadData(is, _curentry.bindings_voxelsize);
1604 loadData(is, _curentry.bindings_xformtoworld);
1605 loadData(is, _curentry.bindings_xformtovoxel);
1606 loadData(is, _curentry.bindings_attribute);
1607 loadData(is, _curentry.bindings_attribclass);
1608 loadData(is, _curentry.bindings_attribtype);
1609 loadData(is, _curentry.bindings_attribsize);
1610 loadData(is, _curentry.bindings_precision);
1611 loadData(is, _curentry.bindings_readable);
1612 loadData(is, _curentry.bindings_writeable);
1613 loadData(is, _curentry.bindings_optional);
1614 loadData(is, _curentry.bindings_defval);
1615 loadData(is, _curentry.bindings_intval);
1616 loadData(is, _curentry.bindings_fval);
1617 loadData(is, _curentry.bindings_v2val);
1618 loadData(is, _curentry.bindings_v3val);
1619 loadData(is, _curentry.bindings_v4val);
1620 loadData(is, _curentry.bindings_timescale);
1624 loadData(is, myGeneratedCode);
1634 if (!thissop)
return getKernelName();
1636 OP_Utils::evalOpParm(result, thissop,
"kernelname", cookparms.
getCookTime(), 0);
1644 if (!thissop)
return getUseCode();
1646 OP_Utils::evalOpParm(result, thissop,
"usecode", cookparms.
getCookTime(), 0);
1654 if (!thissop)
return getKernelFile();
1656 OP_Utils::evalOpParm(result, thissop,
"kernelfile", cookparms.
getCookTime(), 0);
1664 if (!thissop)
return getKernelCode();
1666 OP_Utils::evalOpParm(result, thissop,
"kernelcode", cookparms.
getCookTime(), 0);
1674 if (!thissop)
return getAtBinding();
1676 OP_Utils::evalOpParm(result, thissop,
"atbinding", cookparms.
getCookTime(), 0);
1684 if (!thissop)
return getKernelOptions();
1686 OP_Utils::evalOpParm(result, thissop,
"kerneloptions", cookparms.
getCookTime(), 0);
1694 if (!thissop)
return getKernelOptionAttrib();
1696 OP_Utils::evalOpParm(result, thissop,
"kerneloptionattrib", cookparms.
getCookTime(), 0);
1704 if (!thissop)
return getUseWriteBackKernel();
1706 OP_Utils::evalOpParm(result, thissop,
"usewritebackkernel", cookparms.
getCookTime(), 0);
1714 if (!thissop)
return getWriteBackKernelName();
1716 OP_Utils::evalOpParm(result, thissop,
"writebackkernelname", cookparms.
getCookTime(), 0);
1724 if (!thissop)
return getRecompile();
1726 OP_Utils::evalOpParm(result, thissop,
"recompile", cookparms.
getCookTime(), 0);
1734 if (!thissop)
return getRunOver();
1736 OP_Utils::evalOpParm(result, thissop,
"runover", cookparms.
getCookTime(), 0);
1744 if (!thissop)
return getIterations();
1746 OP_Utils::evalOpParm(result, thissop,
"iterations", cookparms.
getCookTime(), 0);
1754 if (!thissop)
return getIteration();
1756 OP_Utils::evalOpParm(result, thissop,
"iteration", cookparms.
getCookTime(), 0);
1764 if (!thissop)
return getWorksets_begin();
1766 OP_Utils::evalOpParm(result, thissop,
"worksets_begin", cookparms.
getCookTime(), 0);
1774 if (!thissop)
return getWorksets_length();
1776 OP_Utils::evalOpParm(result, thissop,
"worksets_length", cookparms.
getCookTime(), 0);
1784 if (!thissop)
return getSingleworkgroup();
1786 OP_Utils::evalOpParm(result, thissop,
"singleworkgroup", cookparms.
getCookTime(), 0);
1794 if (!thissop)
return getFinish();
1796 OP_Utils::evalOpParm(result, thissop,
"finish", cookparms.
getCookTime(), 0);
1804 if (!thissop)
return getTime();
1806 OP_Utils::evalOpParm(result, thissop,
"time", cookparms.
getCookTime(), 0);
1814 if (!thissop)
return getTimeInc();
1816 OP_Utils::evalOpParm(result, thissop,
"timeinc", cookparms.
getCookTime(), 0);
1824 if (!thissop)
return getTimescale();
1826 OP_Utils::evalOpParm(result, thissop,
"timescale", cookparms.
getCookTime(), 0);
1834 if (!thissop)
return getTimemethod();
1836 OP_Utils::evalOpParm(result, thissop,
"timemethod", cookparms.
getCookTime(), 0);
1844 if (!thissop)
return getXnoise();
1846 OP_Utils::evalOpParm(result, thissop,
"xnoise", cookparms.
getCookTime(), 0);
1854 if (!thissop)
return getPrecision();
1856 OP_Utils::evalOpParm(result, thissop,
"precision", cookparms.
getCookTime(), 0);
1864 if (!thissop)
return getImportPrequel();
1866 OP_Utils::evalOpParm(result, thissop,
"importprequel", cookparms.
getCookTime(), 0);
1874 if (!thissop)
return getBindings().entries();
1876 OP_Utils::evalOpParm(result, thissop,
"bindings", cookparms.
getCookTime(), 0);
1880 {
return opinstBindings_bindings_name(cookparms, &_idx); }
1884 if (!thissop)
return (myBindings(_idx[0]).bindings_name);
1886 _parmidx[1-1] = _idx[1-1] + 1;
1889 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_name", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1893 {
return opinstBindings_bindings_type(cookparms, &_idx); }
1897 if (!thissop)
return (myBindings(_idx[0]).bindings_type);
1899 _parmidx[1-1] = _idx[1-1] + 1;
1902 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_type", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1906 {
return opinstBindings_bindings_ramp(cookparms, &_idx); }
1910 if (!thissop)
return (myBindings(_idx[0]).bindings_ramp);
1912 _parmidx[1-1] = _idx[1-1] + 1;
1915 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_ramp", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1919 {
return opinstBindings_bindings_rampsize(cookparms, &_idx); }
1923 if (!thissop)
return (myBindings(_idx[0]).bindings_rampsize);
1925 _parmidx[1-1] = _idx[1-1] + 1;
1928 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_rampsize", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1932 {
return opinstBindings_bindings_input(cookparms, &_idx); }
1936 if (!thissop)
return (myBindings(_idx[0]).bindings_input);
1938 _parmidx[1-1] = _idx[1-1] + 1;
1941 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_input", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1945 {
return opinstBindings_bindings_volume(cookparms, &_idx); }
1949 if (!thissop)
return (myBindings(_idx[0]).bindings_volume);
1951 _parmidx[1-1] = _idx[1-1] + 1;
1954 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_volume", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1958 {
return opinstBindings_bindings_vdbtype(cookparms, &_idx); }
1962 if (!thissop)
return (myBindings(_idx[0]).bindings_vdbtype);
1964 _parmidx[1-1] = _idx[1-1] + 1;
1967 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_vdbtype", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1971 {
return opinstBindings_bindings_forcealign(cookparms, &_idx); }
1975 if (!thissop)
return (myBindings(_idx[0]).bindings_forcealign);
1977 _parmidx[1-1] = _idx[1-1] + 1;
1980 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_forcealign", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1984 {
return opinstBindings_bindings_resolution(cookparms, &_idx); }
1988 if (!thissop)
return (myBindings(_idx[0]).bindings_resolution);
1990 _parmidx[1-1] = _idx[1-1] + 1;
1993 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_resolution", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1997 {
return opinstBindings_bindings_voxelsize(cookparms, &_idx); }
2001 if (!thissop)
return (myBindings(_idx[0]).bindings_voxelsize);
2003 _parmidx[1-1] = _idx[1-1] + 1;
2006 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_voxelsize", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2010 {
return opinstBindings_bindings_xformtoworld(cookparms, &_idx); }
2014 if (!thissop)
return (myBindings(_idx[0]).bindings_xformtoworld);
2016 _parmidx[1-1] = _idx[1-1] + 1;
2019 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_xformtoworld", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2023 {
return opinstBindings_bindings_xformtovoxel(cookparms, &_idx); }
2027 if (!thissop)
return (myBindings(_idx[0]).bindings_xformtovoxel);
2029 _parmidx[1-1] = _idx[1-1] + 1;
2032 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_xformtovoxel", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2036 {
return opinstBindings_bindings_attribute(cookparms, &_idx); }
2040 if (!thissop)
return (myBindings(_idx[0]).bindings_attribute);
2042 _parmidx[1-1] = _idx[1-1] + 1;
2045 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_attribute", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2049 {
return opinstBindings_bindings_attribclass(cookparms, &_idx); }
2053 if (!thissop)
return (myBindings(_idx[0]).bindings_attribclass);
2055 _parmidx[1-1] = _idx[1-1] + 1;
2058 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_attribclass", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2062 {
return opinstBindings_bindings_attribtype(cookparms, &_idx); }
2066 if (!thissop)
return (myBindings(_idx[0]).bindings_attribtype);
2068 _parmidx[1-1] = _idx[1-1] + 1;
2071 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_attribtype", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2075 {
return opinstBindings_bindings_attribsize(cookparms, &_idx); }
2079 if (!thissop)
return (myBindings(_idx[0]).bindings_attribsize);
2081 _parmidx[1-1] = _idx[1-1] + 1;
2084 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_attribsize", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2088 {
return opinstBindings_bindings_precision(cookparms, &_idx); }
2092 if (!thissop)
return (myBindings(_idx[0]).bindings_precision);
2094 _parmidx[1-1] = _idx[1-1] + 1;
2097 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_precision", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2101 {
return opinstBindings_bindings_readable(cookparms, &_idx); }
2105 if (!thissop)
return (myBindings(_idx[0]).bindings_readable);
2107 _parmidx[1-1] = _idx[1-1] + 1;
2110 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_readable", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2114 {
return opinstBindings_bindings_writeable(cookparms, &_idx); }
2118 if (!thissop)
return (myBindings(_idx[0]).bindings_writeable);
2120 _parmidx[1-1] = _idx[1-1] + 1;
2123 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_writeable", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2127 {
return opinstBindings_bindings_optional(cookparms, &_idx); }
2131 if (!thissop)
return (myBindings(_idx[0]).bindings_optional);
2133 _parmidx[1-1] = _idx[1-1] + 1;
2136 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_optional", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2140 {
return opinstBindings_bindings_defval(cookparms, &_idx); }
2144 if (!thissop)
return (myBindings(_idx[0]).bindings_defval);
2146 _parmidx[1-1] = _idx[1-1] + 1;
2149 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_defval", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2153 {
return opinstBindings_bindings_intval(cookparms, &_idx); }
2157 if (!thissop)
return (myBindings(_idx[0]).bindings_intval);
2159 _parmidx[1-1] = _idx[1-1] + 1;
2162 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_intval", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2166 {
return opinstBindings_bindings_fval(cookparms, &_idx); }
2170 if (!thissop)
return (myBindings(_idx[0]).bindings_fval);
2172 _parmidx[1-1] = _idx[1-1] + 1;
2175 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_fval", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2179 {
return opinstBindings_bindings_v2val(cookparms, &_idx); }
2183 if (!thissop)
return (myBindings(_idx[0]).bindings_v2val);
2185 _parmidx[1-1] = _idx[1-1] + 1;
2188 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_v2val", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2192 {
return opinstBindings_bindings_v3val(cookparms, &_idx); }
2196 if (!thissop)
return (myBindings(_idx[0]).bindings_v3val);
2198 _parmidx[1-1] = _idx[1-1] + 1;
2201 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_v3val", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2205 {
return opinstBindings_bindings_v4val(cookparms, &_idx); }
2209 if (!thissop)
return (myBindings(_idx[0]).bindings_v4val);
2211 _parmidx[1-1] = _idx[1-1] + 1;
2214 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_v4val", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2218 {
return opinstBindings_bindings_timescale(cookparms, &_idx); }
2222 if (!thissop)
return (myBindings(_idx[0]).bindings_timescale);
2224 _parmidx[1-1] = _idx[1-1] + 1;
2227 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_timescale", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2236 if (!thissop)
return getGeneratedCode();
2238 OP_Utils::evalOpParm(result, thissop,
"generatedcode", cookparms.
getCookTime(), 0);
2250 bool myUseWriteBackKernel;
2258 bool mySingleworkgroup;
2266 bool myImportPrequel;
const UT_StringHolder & getWorksets_length() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
virtual NodeIdx getInput(NodeIdx idx, OP_InputIdx input, bool markused=false) const =0
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
bool getRecompile() const
bool opXnoise(const SOP_NodeVerb::CookParms &cookparms) const
bool opinstBindings_bindings_optional(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool getUseWriteBackKernel() const
GLenum GLuint GLenum GLsizei const GLchar * buf
UT_StringHolder opGeneratedCode(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector3D &v)
void setAtBinding(bool val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
void setIteration(bool val)
UT_Vector3D opBindings_bindings_v3val(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
SYS_FORCE_INLINE UT_StringHolder getToken(RunOver enum_value)
int64 bindings_attribsize
void setKernelCode(const UT_StringHolder &val)
SOP_Node * getNode() const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
bool opinstBindings_bindings_defval(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void setWorksets_begin(const UT_StringHolder &val)
int64 opinstBindings_bindings_rampsize(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
int64 opinstBindings_bindings_attribclass(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
UT_Vector3D opinstBindings_bindings_v3val(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool opUseCode(const SOP_NodeVerb::CookParms &cookparms) const
bool bindings_xformtoworld
UT_StringHolder opBindings_bindings_name(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
Timemethod opTimemethod(const SOP_NodeVerb::CookParms &cookparms) const
UT_SharedPtr< UT_Ramp > opinstBindings_bindings_ramp(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
UT_StringHolder opKernelName(const SOP_NodeVerb::CookParms &cookparms) const
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
bool opIteration(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & y() noexcept
const UT_StringHolder & getKernelOptionAttrib() const
int64 bindings_attribtype
int64 opBindings_bindings_input(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void saveData(std::ostream &os, int64 v)
UT_Vector2T< fpreal64 > UT_Vector2D
UT_Vector3D bindings_v3val
void setTimemethod(Timemethod val)
GLsizei const GLfloat * value
int64 opinstBindings_bindings_type(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void loadData(UT_IStream &is, UT_Vector4D &v)
ParmType getNestParmType(TempIndex fieldnum) const override
void setRecompile(bool val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
int64 opBindings_bindings_rampsize(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
const OP_Context & context() const
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
void setKernelFile(const UT_StringHolder &val)
void setKernelName(const UT_StringHolder &val)
bool opBindings_bindings_forcealign(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
constexpr SYS_FORCE_INLINE T & z() noexcept
static void loadData(UT_IStream &is, UT_Vector2D &v)
static void saveData(std::ostream &os, fpreal64 v)
bool operator!=(const Bindings &src) const
SYS_FORCE_INLINE const char * buffer() const
bool opFinish(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Matrix4D &v)
int64 opBindings_bindings_type(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
UT_StringHolder opinstBindings_bindings_attribute(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
GLuint GLsizei GLsizei * length
fpreal64 opTimescale(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opWorksets_length(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getWriteBackKernelName() const
An output stream object that owns its own string buffer storage.
const char * getNestParmName(TempIndex fieldnum) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
UT_StringHolder bindings_volume
static void loadData(UT_IStream &is, UT_Vector3I &v)
const UT_StringHolder & getKernelOptions() const
int64 getIterations() const
**But if you need a result
static void saveData(std::ostream &os, UT_Vector2D v)
fpreal64 opinstBindings_bindings_fval(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
UT_StringHolder opinstBindings_bindings_volume(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
int64 opBindings_bindings_attribclass(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
void setImportPrequel(bool val)
bool opImportPrequel(const SOP_NodeVerb::CookParms &cookparms) const
bool bindings_xformtovoxel
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
UT_StringHolder opKernelOptionAttrib(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opBindings_bindings_attribute(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
int64 opinstBindings_bindings_intval(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
constexpr SYS_FORCE_INLINE T & x() noexcept
void save(std::ostream &os) const
void setKernelOptions(const UT_StringHolder &val)
GLuint GLsizei const GLuint const GLintptr * offsets
void setTimescale(fpreal64 val)
const UT_StringHolder & getWorksets_begin() const
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
constexpr SYS_FORCE_INLINE T & x() noexcept
RunOver getRunOver() const
UT_StringHolder opWorksets_begin(const SOP_NodeVerb::CookParms &cookparms) const
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
static void saveData(std::ostream &os, UT_Matrix3D v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
fpreal64 getTimescale() const
const UT_StringHolder & getKernelFile() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
exint opBindings(const SOP_NodeVerb::CookParms &cookparms) const
bool opTime(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
bool getAtBinding() const
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
bool getIteration() const
int64 opinstBindings_bindings_vdbtype(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void saveData(std::ostream &os, UT_Vector4D v)
UT_SharedPtr< UT_Ramp > bindings_ramp
int64 opBindings_bindings_attribtype(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void loadData(UT_IStream &is, UT_Vector4I &v)
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
constexpr SYS_FORCE_INLINE T & z() noexcept
UT_Vector2D opinstBindings_bindings_v2val(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
Precision getPrecision() const
void setWorksets_length(const UT_StringHolder &val)
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
UT_StringHolder opWriteBackKernelName(const SOP_NodeVerb::CookParms &cookparms) const
bool opinstBindings_bindings_xformtoworld(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
exint read(bool *array, exint sz=1)
const OP_GraphProxy * graph() const
void setUseCode(bool val)
bool opBindings_bindings_defval(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool opBindings_bindings_voxelsize(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setPrecision(Precision val)
static void saveData(std::ostream &os, UT_StringHolder s)
bool opinstBindings_bindings_xformtovoxel(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void loadData(UT_IStream &is, UT_Vector2I &v)
void loadFromOpSubclass(const LoadParms &loadparms) override
UT_StringHolder opKernelFile(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector4D opBindings_bindings_v4val(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
UT_StringHolder bindings_name
static void saveData(std::ostream &os, UT_Vector3D v)
void setWriteBackKernelName(const UT_StringHolder &val)
bool getSingleworkgroup() const
bool opinstBindings_bindings_voxelsize(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
UT_Vector2D opBindings_bindings_v2val(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
virtual void evalOpParmInst(int64 &v, NodeIdx node, const char *parmname, const int *inst, const int *offsets, fpreal time, DEP_MicroNode *depnode, int nestlevel=1) const =0
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
UT_Vector3T< fpreal64 > UT_Vector3D
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
bool opUseWriteBackKernel(const SOP_NodeVerb::CookParms &cookparms) const
bool opBindings_bindings_xformtoworld(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool opBindings_bindings_xformtovoxel(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void loadData(UT_IStream &is, int64 &v)
bool getImportPrequel() const
int64 opBindings_bindings_vdbtype(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
void copyFrom(const OP_NodeParms *src) override
UT_StringHolder opBindings_bindings_volume(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool opSingleworkgroup(const SOP_NodeVerb::CookParms &cookparms) const
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
int64 bindings_attribclass
bool opBindings_bindings_writeable(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
exint getNestNumParms(TempIndex idx) const override
bool opTimeInc(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Matrix3D &v)
SYS_FORCE_INLINE void strcat(const char *src)
void saveBinary(std::ostream &os) const
Save string to binary stream.
UT_StringHolder createString(const UT_Array< Bindings > &list) const
int64 opBindings_bindings_precision(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
GT_API const UT_StringHolder version
int64 opinstBindings_bindings_input(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
exint entries() const
Alias of size(). size() is preferred.
UT_StringHolder bindings_attribute
void setGeneratedCode(const UT_StringHolder &val)
bool operator==(const SOP_OpenCLParms &src) const
UT_Vector4D opinstBindings_bindings_v4val(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool operator==(const Bindings &src) const
bool isParmColorRamp(exint idx) const override
int64 opinstBindings_bindings_attribtype(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void setIterations(int64 val)
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
int int appendSprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
const UT_StringHolder & getKernelCode() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
static void loadData(UT_IStream &is, fpreal64 &v)
void setRunOver(RunOver val)
int64 opBindings_bindings_intval(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setSingleworkgroup(bool val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
bool opinstBindings_bindings_readable(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool opRecompile(const SOP_NodeVerb::CookParms &cookparms) const
DEP_MicroNode * depnode() const
int64 opinstBindings_bindings_precision(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
Timemethod getTimemethod() const
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
bool opAtBinding(const SOP_NodeVerb::CookParms &cookparms) const
bool load(UT_IStream &is)
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
const UT_StringHolder & getKernelName() const
constexpr SYS_FORCE_INLINE T & w() noexcept
SYS_FORCE_INLINE void append(char character)
bool opinstBindings_bindings_resolution(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void setBindings(const UT_Array< Bindings > &val)
UT_StringHolder opinstBindings_bindings_name(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void setUseWriteBackKernel(bool val)
virtual UT_StringHolder baseGetSignature() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
const UT_Array< Bindings > & getBindings() const
int64 opinstBindings_bindings_timescale(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
int64 opIterations(const SOP_NodeVerb::CookParms &cookparms) const
Precision opPrecision(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getGeneratedCode() const
UT_Vector2D bindings_v2val
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
fpreal getCookTime() const
UT_StringHolder opKernelCode(const SOP_NodeVerb::CookParms &cookparms) const
bool operator!=(const SOP_OpenCLParms &src) const
int64 opinstBindings_bindings_attribsize(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void saveData(std::ostream &os, bool v)
const char * findChar(int c) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
bool opBindings_bindings_resolution(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
int64 opBindings_bindings_timescale(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
bool opBindings_bindings_readable(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
fpreal64 opBindings_bindings_fval(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void saveData(std::ostream &os, UT_Matrix4D v)
UT_SharedPtr< UT_Ramp > opBindings_bindings_ramp(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
UT_Vector4T< fpreal64 > UT_Vector4D
constexpr SYS_FORCE_INLINE T & y() noexcept
static void loadData(UT_IStream &is, UT_Matrix2D &v)
bool opinstBindings_bindings_forcealign(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
void setKernelOptionAttrib(const UT_StringHolder &val)
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
UT_StringHolder opKernelOptions(const SOP_NodeVerb::CookParms &cookparms) const
bool opBindings_bindings_optional(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setTimeInc(bool val)
constexpr SYS_FORCE_INLINE T & y() noexcept
SYS_FORCE_INLINE bool isstring() const
UT_Vector4D bindings_v4val
static void saveData(std::ostream &os, UT_Matrix2D v)
static void loadData(UT_IStream &is, bool &v)
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
int64 opBindings_bindings_attribsize(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
RunOver opRunOver(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_StringHolder &v)
bool opinstBindings_bindings_writeable(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
constexpr SYS_FORCE_INLINE T & x() noexcept