23 namespace SOP_OpenCLEnums
128 bindings_name =
""_UTsh;
131 bindings_rampsize = 1024;
133 bindings_volume =
""_UTsh;
134 bindings_vdbtype = 0;
135 bindings_forcealign =
true;
136 bindings_resolution =
false;
137 bindings_voxelsize =
false;
138 bindings_xformtoworld =
false;
139 bindings_xformtovoxel =
false;
140 bindings_attribute =
""_UTsh;
141 bindings_attribclass = 2;
142 bindings_attribtype = 0;
143 bindings_attribsize = 1;
144 bindings_precision = 2;
145 bindings_readable =
true;
146 bindings_writeable =
false;
147 bindings_optional =
false;
148 bindings_defval =
false;
153 bindings_timescale = 0;
200 for (
int i = 0; i < list.
entries(); i++)
210 if (list(i).bindings_ramp)
214 list(i).bindings_ramp->save(os);
228 buf.
appendSprintf(
"%s", (list(i).bindings_forcealign) ?
"true" :
"false");
230 buf.
appendSprintf(
"%s", (list(i).bindings_resolution) ?
"true" :
"false");
232 buf.
appendSprintf(
"%s", (list(i).bindings_voxelsize) ?
"true" :
"false");
234 buf.
appendSprintf(
"%s", (list(i).bindings_xformtoworld) ?
"true" :
"false");
236 buf.
appendSprintf(
"%s", (list(i).bindings_xformtovoxel) ?
"true" :
"false");
248 buf.
appendSprintf(
"%s", (list(i).bindings_readable) ?
"true" :
"false");
250 buf.
appendSprintf(
"%s", (list(i).bindings_writeable) ?
"true" :
"false");
252 buf.
appendSprintf(
"%s", (list(i).bindings_optional) ?
"true" :
"false");
254 buf.
appendSprintf(
"%s", (list(i).bindings_defval) ?
"true" :
"false");
260 buf.
appendSprintf(
"(%f, %f, %f)", list(i).bindings_v3val.x(), list(i).bindings_v3val.y(), list(i).bindings_v3val.z());
262 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());
276 myKernelName =
"kernelName"_UTsh;
278 myKernelFile =
""_UTsh;
279 myKernelCode =
""_UTsh;
281 myKernelOptions =
""_UTsh;
282 myKernelOptionAttrib =
""_UTsh;
283 myUseWriteBackKernel =
false;
284 myWriteBackKernelName =
"writeBack"_UTsh;
288 myWorksets_begin =
""_UTsh;
289 myWorksets_length =
""_UTsh;
290 mySingleworkgroup =
false;
298 myBindings.setSize(1);
299 myGeneratedCode =
""_UTsh;
312 if (myKernelName != src.myKernelName)
return false;
313 if (myUseCode != src.myUseCode)
return false;
314 if (myKernelFile != src.myKernelFile)
return false;
315 if (myKernelCode != src.myKernelCode)
return false;
316 if (myAtBinding != src.myAtBinding)
return false;
317 if (myKernelOptions != src.myKernelOptions)
return false;
318 if (myKernelOptionAttrib != src.myKernelOptionAttrib)
return false;
319 if (myUseWriteBackKernel != src.myUseWriteBackKernel)
return false;
320 if (myWriteBackKernelName != src.myWriteBackKernelName)
return false;
321 if (myRecompile != src.myRecompile)
return false;
322 if (myRunOver != src.myRunOver)
return false;
323 if (myIterations != src.myIterations)
return false;
324 if (myWorksets_begin != src.myWorksets_begin)
return false;
325 if (myWorksets_length != src.myWorksets_length)
return false;
326 if (mySingleworkgroup != src.mySingleworkgroup)
return false;
327 if (myFinish != src.myFinish)
return false;
328 if (myTime != src.myTime)
return false;
329 if (myTimeInc != src.myTimeInc)
return false;
330 if (myTimescale != src.myTimescale)
return false;
331 if (myTimemethod != src.myTimemethod)
return false;
332 if (myXnoise != src.myXnoise)
return false;
333 if (myPrecision != src.myPrecision)
return false;
334 if (myBindings != src.myBindings)
return false;
335 if (myGeneratedCode != src.myGeneratedCode)
return false;
357 myKernelName =
"kernelName"_UTsh;
359 graph->
evalOpParm(myKernelName, nodeidx,
"kernelname", time, 0);
362 graph->
evalOpParm(myUseCode, nodeidx,
"usecode", time, 0);
363 myKernelFile =
""_UTsh;
364 if (
true && ( (
true&&!(((getUseCode()!=0)))) ) )
365 graph->
evalOpParm(myKernelFile, nodeidx,
"kernelfile", time, 0);
366 myKernelCode =
""_UTsh;
367 if (
true && ( (
true&&!(((getUseCode()==0)))) ) )
368 graph->
evalOpParm(myKernelCode, nodeidx,
"kernelcode", time, 0);
370 if (
true && ( (
true&&!(((getUseCode()==0)))) ) )
371 graph->
evalOpParm(myAtBinding, nodeidx,
"atbinding", time, 0);
372 myKernelOptions =
""_UTsh;
374 graph->
evalOpParm(myKernelOptions, nodeidx,
"kerneloptions", time, 0);
375 myKernelOptionAttrib =
""_UTsh;
377 graph->
evalOpParm(myKernelOptionAttrib, nodeidx,
"kerneloptionattrib", time, 0);
378 myUseWriteBackKernel =
false;
380 graph->
evalOpParm(myUseWriteBackKernel, nodeidx,
"usewritebackkernel", time, 0);
381 myWriteBackKernelName =
"writeBack"_UTsh;
382 if (
true && ( (
true&&!(((getUseWriteBackKernel()==0)))) ) )
383 graph->
evalOpParm(myWriteBackKernelName, nodeidx,
"writebackkernelname", time, 0);
386 graph->
evalOpParm(myRecompile, nodeidx,
"recompile", time, 0);
389 graph->
evalOpParm(myRunOver, nodeidx,
"runover", time, 0);
392 graph->
evalOpParm(myIterations, nodeidx,
"iterations", time, 0);
393 myWorksets_begin =
""_UTsh;
394 if (
true && ( (
true&&!(((
int64(getRunOver())!=2)))) ) )
395 graph->
evalOpParm(myWorksets_begin, nodeidx,
"worksets_begin", time, 0);
396 myWorksets_length =
""_UTsh;
397 if (
true && ( (
true&&!(((
int64(getRunOver())!=2)))) ) )
398 graph->
evalOpParm(myWorksets_length, nodeidx,
"worksets_length", time, 0);
399 mySingleworkgroup =
false;
400 if (
true && ( (
true&&!(((
int64(getRunOver())!=2)))) ) )
401 graph->
evalOpParm(mySingleworkgroup, nodeidx,
"singleworkgroup", time, 0);
404 graph->
evalOpParm(myFinish, nodeidx,
"finish", time, 0);
407 graph->
evalOpParm(myTime, nodeidx,
"time", time, 0);
410 graph->
evalOpParm(myTimeInc, nodeidx,
"timeinc", time, 0);
412 if (
true && ( (
true&&!(((getTimeInc()==0)))) ) )
413 graph->
evalOpParm(myTimescale, nodeidx,
"timescale", time, 0);
415 if (
true && ( (
true&&!(((getTimeInc()==0)))) ) )
416 graph->
evalOpParm(myTimemethod, nodeidx,
"timemethod", time, 0);
419 graph->
evalOpParm(myXnoise, nodeidx,
"xnoise", time, 0);
422 graph->
evalOpParm(myPrecision, nodeidx,
"precision", time, 0);
426 graph->
evalOpParm(length, nodeidx,
"bindings", time, 0);
427 if (length < 0) length = 0;
428 myBindings.setSize(length);
435 auto && _curentry = myBindings(i);
437 _curentry.bindings_name =
""_UTsh;
439 graph->
evalOpParmInst(_curentry.bindings_name, nodeidx,
"bindings#_name", parmidx, offsets, time, 0, 2-1);
440 _curentry.bindings_type = 0;
442 graph->
evalOpParmInst(_curentry.bindings_type, nodeidx,
"bindings#_type", parmidx, offsets, time, 0, 2-1);
444 if (
true && ( (
true&&!(((_curentry.bindings_type!=4)))) ) )
445 graph->
evalOpParmInst(_curentry.bindings_ramp, nodeidx,
"bindings#_ramp", parmidx, offsets, time, 0, 2-1);
446 _curentry.bindings_rampsize = 1024;
447 if (
true && ( (
true&&!(((_curentry.bindings_type!=4)))) ) )
448 graph->
evalOpParmInst(_curentry.bindings_rampsize, nodeidx,
"bindings#_rampsize", parmidx, offsets, time, 0, 2-1);
449 _curentry.bindings_input = 0;
450 if (
true && ( (
true&&!(((_curentry.bindings_type!=6)&&(_curentry.bindings_type!=7)&&(_curentry.bindings_type!=5)))) ) )
451 graph->
evalOpParmInst(_curentry.bindings_input, nodeidx,
"bindings#_input", parmidx, offsets, time, 0, 2-1);
452 _curentry.bindings_volume =
""_UTsh;
453 if (
true && ( (
true&&!(((_curentry.bindings_type!=6)&&(_curentry.bindings_type!=7)))) ) )
454 graph->
evalOpParmInst(_curentry.bindings_volume, nodeidx,
"bindings#_volume", parmidx, offsets, time, 0, 2-1);
455 _curentry.bindings_vdbtype = 0;
456 if (
true && ( (
true&&!(((_curentry.bindings_type!=7)))) ) )
457 graph->
evalOpParmInst(_curentry.bindings_vdbtype, nodeidx,
"bindings#_vdbtype", parmidx, offsets, time, 0, 2-1);
458 _curentry.bindings_forcealign =
true;
459 if (
true && ( (
true&&!(((_curentry.bindings_type!=6)))) ) )
460 graph->
evalOpParmInst(_curentry.bindings_forcealign, nodeidx,
"bindings#_forcealign", parmidx, offsets, time, 0, 2-1);
461 _curentry.bindings_resolution =
false;
462 if (
true && ( (
true&&!(((_curentry.bindings_type!=6))||((_curentry.bindings_forcealign==1)))) ) )
463 graph->
evalOpParmInst(_curentry.bindings_resolution, nodeidx,
"bindings#_resolution", parmidx, offsets, time, 0, 2-1);
464 _curentry.bindings_voxelsize =
false;
465 if (
true && ( (
true&&!(((_curentry.bindings_type!=6)&&(_curentry.bindings_type!=7))||((_curentry.bindings_forcealign==1)&&(_curentry.bindings_type==6)))) ) )
466 graph->
evalOpParmInst(_curentry.bindings_voxelsize, nodeidx,
"bindings#_voxelsize", parmidx, offsets, time, 0, 2-1);
467 _curentry.bindings_xformtoworld =
false;
468 if (
true && ( (
true&&!(((_curentry.bindings_type!=6)&&(_curentry.bindings_type!=7))||((_curentry.bindings_forcealign==1)&&(_curentry.bindings_type==6)))) ) )
469 graph->
evalOpParmInst(_curentry.bindings_xformtoworld, nodeidx,
"bindings#_xformtoworld", parmidx, offsets, time, 0, 2-1);
470 _curentry.bindings_xformtovoxel =
false;
471 if (
true && ( (
true&&!(((_curentry.bindings_type!=6)&&(_curentry.bindings_type!=7))||((_curentry.bindings_forcealign==1)&&(_curentry.bindings_type==6)))) ) )
472 graph->
evalOpParmInst(_curentry.bindings_xformtovoxel, nodeidx,
"bindings#_xformtovoxel", parmidx, offsets, time, 0, 2-1);
473 _curentry.bindings_attribute =
""_UTsh;
474 if (
true && ( (
true&&!(((_curentry.bindings_type!=5)))) ) )
475 graph->
evalOpParmInst(_curentry.bindings_attribute, nodeidx,
"bindings#_attribute", parmidx, offsets, time, 0, 2-1);
476 _curentry.bindings_attribclass = 2;
477 if (
true && ( (
true&&!(((_curentry.bindings_type!=5)))) ) )
478 graph->
evalOpParmInst(_curentry.bindings_attribclass, nodeidx,
"bindings#_attribclass", parmidx, offsets, time, 0, 2-1);
479 _curentry.bindings_attribtype = 0;
480 if (
true && ( (
true&&!(((_curentry.bindings_type!=5)))) ) )
481 graph->
evalOpParmInst(_curentry.bindings_attribtype, nodeidx,
"bindings#_attribtype", parmidx, offsets, time, 0, 2-1);
482 _curentry.bindings_attribsize = 1;
483 if (
true && ( (
true&&!(((_curentry.bindings_type!=5)))) ) )
484 graph->
evalOpParmInst(_curentry.bindings_attribsize, nodeidx,
"bindings#_attribsize", parmidx, offsets, time, 0, 2-1);
485 _curentry.bindings_precision = 2;
487 graph->
evalOpParmInst(_curentry.bindings_precision, nodeidx,
"bindings#_precision", parmidx, offsets, time, 0, 2-1);
488 _curentry.bindings_readable =
true;
489 if (
true && ( (
true&&!(((_curentry.bindings_type!=5)&&(_curentry.bindings_type!=6)))) ) )
490 graph->
evalOpParmInst(_curentry.bindings_readable, nodeidx,
"bindings#_readable", parmidx, offsets, time, 0, 2-1);
491 _curentry.bindings_writeable =
false;
492 if (
true && ( (
true&&!(((_curentry.bindings_type!=5)&&(_curentry.bindings_type!=6)&&(_curentry.bindings_type!=7)))) ) )
493 graph->
evalOpParmInst(_curentry.bindings_writeable, nodeidx,
"bindings#_writeable", parmidx, offsets, time, 0, 2-1);
494 _curentry.bindings_optional =
false;
495 if (
true && ( (
true&&!(((_curentry.bindings_type!=5)&&(_curentry.bindings_type!=6)&&(_curentry.bindings_type!=7)))) ) )
496 graph->
evalOpParmInst(_curentry.bindings_optional, nodeidx,
"bindings#_optional", parmidx, offsets, time, 0, 2-1);
497 _curentry.bindings_defval =
false;
498 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)))) ) )
499 graph->
evalOpParmInst(_curentry.bindings_defval, nodeidx,
"bindings#_defval", parmidx, offsets, time, 0, 2-1);
500 _curentry.bindings_intval = 0;
501 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)))) ) )
502 graph->
evalOpParmInst(_curentry.bindings_intval, nodeidx,
"bindings#_intval", parmidx, offsets, time, 0, 2-1);
503 _curentry.bindings_fval = 0;
504 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==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)))) ) )
505 graph->
evalOpParmInst(_curentry.bindings_fval, nodeidx,
"bindings#_fval", parmidx, offsets, time, 0, 2-1);
507 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)))) ) )
508 graph->
evalOpParmInst(_curentry.bindings_v3val, nodeidx,
"bindings#_v3val", parmidx, offsets, time, 0, 2-1);
510 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)))) ) )
511 graph->
evalOpParmInst(_curentry.bindings_v4val, nodeidx,
"bindings#_v4val", parmidx, offsets, time, 0, 2-1);
512 _curentry.bindings_timescale = 0;
513 if (
true && ( (
true&&!(((_curentry.bindings_type!=1)))) ) )
514 graph->
evalOpParmInst(_curentry.bindings_timescale, nodeidx,
"bindings#_timescale", parmidx, offsets, time, 0, 2-1);
520 myGeneratedCode =
""_UTsh;
521 if (
true && ( (
true&&!((((graph->
getInput(nodeidx,0)>=0)==0))||(((graph->
getInput(nodeidx,0)>=0)==1)))) ) )
522 graph->
evalOpParm(myGeneratedCode, nodeidx,
"generatedcode", time, 0);
538 template <
typename T>
545 if (idx.
size() != instance.
size()+1)
618 else if (instance[0] < myBindings.entries())
620 auto && _data = myBindings(instance[0]);
722 { doGetParmValue(idx, instance, value); }
724 { doGetParmValue(idx, instance, value); }
726 { doGetParmValue(idx, instance, value); }
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 template <
typename T>
751 if (idx.
size() != instance.
size()+1)
826 if (newsize < 0) newsize = 0;
827 myBindings.setSize(newsize);
833 myBindings.setSizeIfNeeded(instance[0]+1);
834 auto && _data = myBindings(instance[0]);
927 { doSetParmValue(idx, instance, value); }
929 { doSetParmValue(idx, instance, value); }
931 { doSetParmValue(idx, instance, value); }
933 { doSetParmValue(idx, instance, value); }
935 { doSetParmValue(idx, instance, value); }
937 { doSetParmValue(idx, instance, value); }
939 { doSetParmValue(idx, instance, value); }
941 { doSetParmValue(idx, instance, value); }
943 { doSetParmValue(idx, instance, value); }
945 { doSetParmValue(idx, instance, value); }
947 { doSetParmValue(idx, instance, value); }
965 if (fieldnum.
size() < 1)
980 return "kerneloptions";
982 return "kerneloptionattrib";
984 return "usewritebackkernel";
986 return "writebackkernelname";
994 return "worksets_begin";
996 return "worksets_length";
998 return "singleworkgroup";
1008 return "timemethod";
1014 if (fieldnum.
size() == 1)
1016 switch (fieldnum[1])
1019 return "bindings#_name";
1021 return "bindings#_type";
1023 return "bindings#_ramp";
1025 return "bindings#_rampsize";
1027 return "bindings#_input";
1029 return "bindings#_volume";
1031 return "bindings#_vdbtype";
1033 return "bindings#_forcealign";
1035 return "bindings#_resolution";
1037 return "bindings#_voxelsize";
1039 return "bindings#_xformtoworld";
1041 return "bindings#_xformtovoxel";
1043 return "bindings#_attribute";
1045 return "bindings#_attribclass";
1047 return "bindings#_attribtype";
1049 return "bindings#_attribsize";
1051 return "bindings#_precision";
1053 return "bindings#_readable";
1055 return "bindings#_writeable";
1057 return "bindings#_optional";
1059 return "bindings#_defval";
1061 return "bindings#_intval";
1063 return "bindings#_fval";
1065 return "bindings#_v3val";
1067 return "bindings#_v4val";
1069 return "bindings#_timescale";
1074 return "generatedcode";
1082 if (fieldnum.
size() < 1)
1083 return PARM_UNSUPPORTED;
1084 switch (fieldnum[0])
1131 if (fieldnum.
size() == 1)
1132 return PARM_MULTIPARM;
1133 switch (fieldnum[1])
1199 { is.
bread(&v, 1); }
1213 {
for (
int r = 0;
r < 2;
r++)
for (
int c = 0; c < 2; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
1215 {
for (
int r = 0;
r < 3;
r++)
for (
int c = 0; c < 3; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
1217 {
for (
int r = 0;
r < 4;
r++)
for (
int c = 0; c < 4; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
1230 loadData(is, rampdata);
1248 int typelen = colon - data.
buffer();
1260 { UTwrite(os, &v); }
1262 {
int64 iv =
v; UTwrite(os, &iv); }
1264 { UTwrite<fpreal64>(os, &
v); }
1266 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
1268 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1269 UTwrite<fpreal64>(os, &v.
z()); }
1271 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
1272 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
1284 if (s) s->save(ostr);
1285 result = ostr.
str();
1286 saveData(os, result);
1293 ostr << s->getDataTypeToken();
1295 s->saveBinary(ostr);
1297 result = ostr.
str();
1298 saveData(os, result);
1306 saveData(os, myKernelName);
1307 saveData(os, myUseCode);
1308 saveData(os, myKernelFile);
1309 saveData(os, myKernelCode);
1310 saveData(os, myAtBinding);
1311 saveData(os, myKernelOptions);
1312 saveData(os, myKernelOptionAttrib);
1313 saveData(os, myUseWriteBackKernel);
1314 saveData(os, myWriteBackKernelName);
1315 saveData(os, myRecompile);
1316 saveData(os, myRunOver);
1317 saveData(os, myIterations);
1318 saveData(os, myWorksets_begin);
1319 saveData(os, myWorksets_length);
1320 saveData(os, mySingleworkgroup);
1321 saveData(os, myFinish);
1322 saveData(os, myTime);
1323 saveData(os, myTimeInc);
1324 saveData(os, myTimescale);
1325 saveData(os, myTimemethod);
1326 saveData(os, myXnoise);
1327 saveData(os, myPrecision);
1330 UTwrite(os, &length);
1333 auto && _curentry = myBindings(i);
1335 saveData(os, _curentry.bindings_name);
1336 saveData(os, _curentry.bindings_type);
1337 saveData(os, _curentry.bindings_ramp);
1338 saveData(os, _curentry.bindings_rampsize);
1339 saveData(os, _curentry.bindings_input);
1340 saveData(os, _curentry.bindings_volume);
1341 saveData(os, _curentry.bindings_vdbtype);
1342 saveData(os, _curentry.bindings_forcealign);
1343 saveData(os, _curentry.bindings_resolution);
1344 saveData(os, _curentry.bindings_voxelsize);
1345 saveData(os, _curentry.bindings_xformtoworld);
1346 saveData(os, _curentry.bindings_xformtovoxel);
1347 saveData(os, _curentry.bindings_attribute);
1348 saveData(os, _curentry.bindings_attribclass);
1349 saveData(os, _curentry.bindings_attribtype);
1350 saveData(os, _curentry.bindings_attribsize);
1351 saveData(os, _curentry.bindings_precision);
1352 saveData(os, _curentry.bindings_readable);
1353 saveData(os, _curentry.bindings_writeable);
1354 saveData(os, _curentry.bindings_optional);
1355 saveData(os, _curentry.bindings_defval);
1356 saveData(os, _curentry.bindings_intval);
1357 saveData(os, _curentry.bindings_fval);
1358 saveData(os, _curentry.bindings_v3val);
1359 saveData(os, _curentry.bindings_v4val);
1360 saveData(os, _curentry.bindings_timescale);
1364 saveData(os, myGeneratedCode);
1377 loadData(is, myKernelName);
1378 loadData(is, myUseCode);
1379 loadData(is, myKernelFile);
1380 loadData(is, myKernelCode);
1381 loadData(is, myAtBinding);
1382 loadData(is, myKernelOptions);
1383 loadData(is, myKernelOptionAttrib);
1384 loadData(is, myUseWriteBackKernel);
1385 loadData(is, myWriteBackKernelName);
1386 loadData(is, myRecompile);
1387 loadData(is, myRunOver);
1388 loadData(is, myIterations);
1389 loadData(is, myWorksets_begin);
1390 loadData(is, myWorksets_length);
1391 loadData(is, mySingleworkgroup);
1392 loadData(is, myFinish);
1393 loadData(is, myTime);
1394 loadData(is, myTimeInc);
1395 loadData(is, myTimescale);
1396 loadData(is, myTimemethod);
1397 loadData(is, myXnoise);
1398 loadData(is, myPrecision);
1401 is.
read(&length, 1);
1402 myBindings.setSize(length);
1405 auto && _curentry = myBindings(i);
1407 loadData(is, _curentry.bindings_name);
1408 loadData(is, _curentry.bindings_type);
1409 loadData(is, _curentry.bindings_ramp);
1410 loadData(is, _curentry.bindings_rampsize);
1411 loadData(is, _curentry.bindings_input);
1412 loadData(is, _curentry.bindings_volume);
1413 loadData(is, _curentry.bindings_vdbtype);
1414 loadData(is, _curentry.bindings_forcealign);
1415 loadData(is, _curentry.bindings_resolution);
1416 loadData(is, _curentry.bindings_voxelsize);
1417 loadData(is, _curentry.bindings_xformtoworld);
1418 loadData(is, _curentry.bindings_xformtovoxel);
1419 loadData(is, _curentry.bindings_attribute);
1420 loadData(is, _curentry.bindings_attribclass);
1421 loadData(is, _curentry.bindings_attribtype);
1422 loadData(is, _curentry.bindings_attribsize);
1423 loadData(is, _curentry.bindings_precision);
1424 loadData(is, _curentry.bindings_readable);
1425 loadData(is, _curentry.bindings_writeable);
1426 loadData(is, _curentry.bindings_optional);
1427 loadData(is, _curentry.bindings_defval);
1428 loadData(is, _curentry.bindings_intval);
1429 loadData(is, _curentry.bindings_fval);
1430 loadData(is, _curentry.bindings_v3val);
1431 loadData(is, _curentry.bindings_v4val);
1432 loadData(is, _curentry.bindings_timescale);
1436 loadData(is, myGeneratedCode);
1446 if (!thissop)
return getKernelName();
1448 OP_Utils::evalOpParm(result, thissop,
"kernelname", cookparms.
getCookTime(), 0);
1456 if (!thissop)
return getUseCode();
1458 OP_Utils::evalOpParm(result, thissop,
"usecode", cookparms.
getCookTime(), 0);
1466 if (!thissop)
return getKernelFile();
1468 OP_Utils::evalOpParm(result, thissop,
"kernelfile", cookparms.
getCookTime(), 0);
1476 if (!thissop)
return getKernelCode();
1478 OP_Utils::evalOpParm(result, thissop,
"kernelcode", cookparms.
getCookTime(), 0);
1486 if (!thissop)
return getAtBinding();
1488 OP_Utils::evalOpParm(result, thissop,
"atbinding", cookparms.
getCookTime(), 0);
1496 if (!thissop)
return getKernelOptions();
1498 OP_Utils::evalOpParm(result, thissop,
"kerneloptions", cookparms.
getCookTime(), 0);
1506 if (!thissop)
return getKernelOptionAttrib();
1508 OP_Utils::evalOpParm(result, thissop,
"kerneloptionattrib", cookparms.
getCookTime(), 0);
1516 if (!thissop)
return getUseWriteBackKernel();
1518 OP_Utils::evalOpParm(result, thissop,
"usewritebackkernel", cookparms.
getCookTime(), 0);
1526 if (!thissop)
return getWriteBackKernelName();
1528 OP_Utils::evalOpParm(result, thissop,
"writebackkernelname", cookparms.
getCookTime(), 0);
1536 if (!thissop)
return getRecompile();
1538 OP_Utils::evalOpParm(result, thissop,
"recompile", cookparms.
getCookTime(), 0);
1546 if (!thissop)
return getRunOver();
1548 OP_Utils::evalOpParm(result, thissop,
"runover", cookparms.
getCookTime(), 0);
1556 if (!thissop)
return getIterations();
1558 OP_Utils::evalOpParm(result, thissop,
"iterations", cookparms.
getCookTime(), 0);
1566 if (!thissop)
return getWorksets_begin();
1568 OP_Utils::evalOpParm(result, thissop,
"worksets_begin", cookparms.
getCookTime(), 0);
1576 if (!thissop)
return getWorksets_length();
1578 OP_Utils::evalOpParm(result, thissop,
"worksets_length", cookparms.
getCookTime(), 0);
1586 if (!thissop)
return getSingleworkgroup();
1588 OP_Utils::evalOpParm(result, thissop,
"singleworkgroup", cookparms.
getCookTime(), 0);
1596 if (!thissop)
return getFinish();
1598 OP_Utils::evalOpParm(result, thissop,
"finish", cookparms.
getCookTime(), 0);
1606 if (!thissop)
return getTime();
1608 OP_Utils::evalOpParm(result, thissop,
"time", cookparms.
getCookTime(), 0);
1616 if (!thissop)
return getTimeInc();
1618 OP_Utils::evalOpParm(result, thissop,
"timeinc", cookparms.
getCookTime(), 0);
1626 if (!thissop)
return getTimescale();
1628 OP_Utils::evalOpParm(result, thissop,
"timescale", cookparms.
getCookTime(), 0);
1636 if (!thissop)
return getTimemethod();
1638 OP_Utils::evalOpParm(result, thissop,
"timemethod", cookparms.
getCookTime(), 0);
1646 if (!thissop)
return getXnoise();
1648 OP_Utils::evalOpParm(result, thissop,
"xnoise", cookparms.
getCookTime(), 0);
1656 if (!thissop)
return getPrecision();
1658 OP_Utils::evalOpParm(result, thissop,
"precision", cookparms.
getCookTime(), 0);
1666 if (!thissop)
return getBindings().entries();
1668 OP_Utils::evalOpParm(result, thissop,
"bindings", cookparms.
getCookTime(), 0);
1672 {
return opinstBindings_bindings_name(cookparms, &_idx); }
1676 if (!thissop)
return (myBindings(_idx[0]).bindings_name);
1678 _parmidx[1-1] = _idx[1-1] + 1;
1681 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_name", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1685 {
return opinstBindings_bindings_type(cookparms, &_idx); }
1689 if (!thissop)
return (myBindings(_idx[0]).bindings_type);
1691 _parmidx[1-1] = _idx[1-1] + 1;
1694 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_type", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1698 {
return opinstBindings_bindings_ramp(cookparms, &_idx); }
1702 if (!thissop)
return (myBindings(_idx[0]).bindings_ramp);
1704 _parmidx[1-1] = _idx[1-1] + 1;
1707 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_ramp", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1711 {
return opinstBindings_bindings_rampsize(cookparms, &_idx); }
1715 if (!thissop)
return (myBindings(_idx[0]).bindings_rampsize);
1717 _parmidx[1-1] = _idx[1-1] + 1;
1720 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_rampsize", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1724 {
return opinstBindings_bindings_input(cookparms, &_idx); }
1728 if (!thissop)
return (myBindings(_idx[0]).bindings_input);
1730 _parmidx[1-1] = _idx[1-1] + 1;
1733 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_input", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1737 {
return opinstBindings_bindings_volume(cookparms, &_idx); }
1741 if (!thissop)
return (myBindings(_idx[0]).bindings_volume);
1743 _parmidx[1-1] = _idx[1-1] + 1;
1746 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_volume", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1750 {
return opinstBindings_bindings_vdbtype(cookparms, &_idx); }
1754 if (!thissop)
return (myBindings(_idx[0]).bindings_vdbtype);
1756 _parmidx[1-1] = _idx[1-1] + 1;
1759 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_vdbtype", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1763 {
return opinstBindings_bindings_forcealign(cookparms, &_idx); }
1767 if (!thissop)
return (myBindings(_idx[0]).bindings_forcealign);
1769 _parmidx[1-1] = _idx[1-1] + 1;
1772 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_forcealign", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1776 {
return opinstBindings_bindings_resolution(cookparms, &_idx); }
1780 if (!thissop)
return (myBindings(_idx[0]).bindings_resolution);
1782 _parmidx[1-1] = _idx[1-1] + 1;
1785 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_resolution", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1789 {
return opinstBindings_bindings_voxelsize(cookparms, &_idx); }
1793 if (!thissop)
return (myBindings(_idx[0]).bindings_voxelsize);
1795 _parmidx[1-1] = _idx[1-1] + 1;
1798 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_voxelsize", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1802 {
return opinstBindings_bindings_xformtoworld(cookparms, &_idx); }
1806 if (!thissop)
return (myBindings(_idx[0]).bindings_xformtoworld);
1808 _parmidx[1-1] = _idx[1-1] + 1;
1811 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_xformtoworld", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1815 {
return opinstBindings_bindings_xformtovoxel(cookparms, &_idx); }
1819 if (!thissop)
return (myBindings(_idx[0]).bindings_xformtovoxel);
1821 _parmidx[1-1] = _idx[1-1] + 1;
1824 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_xformtovoxel", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1828 {
return opinstBindings_bindings_attribute(cookparms, &_idx); }
1832 if (!thissop)
return (myBindings(_idx[0]).bindings_attribute);
1834 _parmidx[1-1] = _idx[1-1] + 1;
1837 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_attribute", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1841 {
return opinstBindings_bindings_attribclass(cookparms, &_idx); }
1845 if (!thissop)
return (myBindings(_idx[0]).bindings_attribclass);
1847 _parmidx[1-1] = _idx[1-1] + 1;
1850 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_attribclass", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1854 {
return opinstBindings_bindings_attribtype(cookparms, &_idx); }
1858 if (!thissop)
return (myBindings(_idx[0]).bindings_attribtype);
1860 _parmidx[1-1] = _idx[1-1] + 1;
1863 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_attribtype", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1867 {
return opinstBindings_bindings_attribsize(cookparms, &_idx); }
1871 if (!thissop)
return (myBindings(_idx[0]).bindings_attribsize);
1873 _parmidx[1-1] = _idx[1-1] + 1;
1876 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_attribsize", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1880 {
return opinstBindings_bindings_precision(cookparms, &_idx); }
1884 if (!thissop)
return (myBindings(_idx[0]).bindings_precision);
1886 _parmidx[1-1] = _idx[1-1] + 1;
1889 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_precision", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1893 {
return opinstBindings_bindings_readable(cookparms, &_idx); }
1897 if (!thissop)
return (myBindings(_idx[0]).bindings_readable);
1899 _parmidx[1-1] = _idx[1-1] + 1;
1902 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_readable", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1906 {
return opinstBindings_bindings_writeable(cookparms, &_idx); }
1910 if (!thissop)
return (myBindings(_idx[0]).bindings_writeable);
1912 _parmidx[1-1] = _idx[1-1] + 1;
1915 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_writeable", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1919 {
return opinstBindings_bindings_optional(cookparms, &_idx); }
1923 if (!thissop)
return (myBindings(_idx[0]).bindings_optional);
1925 _parmidx[1-1] = _idx[1-1] + 1;
1928 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_optional", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1932 {
return opinstBindings_bindings_defval(cookparms, &_idx); }
1936 if (!thissop)
return (myBindings(_idx[0]).bindings_defval);
1938 _parmidx[1-1] = _idx[1-1] + 1;
1941 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_defval", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1945 {
return opinstBindings_bindings_intval(cookparms, &_idx); }
1949 if (!thissop)
return (myBindings(_idx[0]).bindings_intval);
1951 _parmidx[1-1] = _idx[1-1] + 1;
1954 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_intval", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1958 {
return opinstBindings_bindings_fval(cookparms, &_idx); }
1962 if (!thissop)
return (myBindings(_idx[0]).bindings_fval);
1964 _parmidx[1-1] = _idx[1-1] + 1;
1967 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_fval", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1971 {
return opinstBindings_bindings_v3val(cookparms, &_idx); }
1975 if (!thissop)
return (myBindings(_idx[0]).bindings_v3val);
1977 _parmidx[1-1] = _idx[1-1] + 1;
1980 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_v3val", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1984 {
return opinstBindings_bindings_v4val(cookparms, &_idx); }
1988 if (!thissop)
return (myBindings(_idx[0]).bindings_v4val);
1990 _parmidx[1-1] = _idx[1-1] + 1;
1993 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_v4val", _parmidx, cookparms.
getCookTime(), 0, 2-1);
1997 {
return opinstBindings_bindings_timescale(cookparms, &_idx); }
2001 if (!thissop)
return (myBindings(_idx[0]).bindings_timescale);
2003 _parmidx[1-1] = _idx[1-1] + 1;
2006 OP_Utils::evalOpParmInst(result, thissop,
"bindings#_timescale", _parmidx, cookparms.
getCookTime(), 0, 2-1);
2015 if (!thissop)
return getGeneratedCode();
2017 OP_Utils::evalOpParm(result, thissop,
"generatedcode", cookparms.
getCookTime(), 0);
2029 bool myUseWriteBackKernel;
2036 bool mySingleworkgroup;
const UT_StringHolder & getWorksets_length() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
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
UT_Vector3D opBindings_bindings_v3val(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
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)
T clampMaxValue(fpreal maxvalue, const T &src) const
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
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_Vector3D bindings_v3val
void setTimemethod(Timemethod val)
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
T clampMinValue(fpreal minvalue, const T &src) const
int64 opBindings_bindings_attribclass(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
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
virtual NodeIdx getInput(NodeIdx idx, int input, bool markused=false) const =0
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
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)
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
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
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)
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 coerceValue(T &result, const S &src) 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
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)
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
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)
UT_StringHolder opKernelOptions(const SOP_NodeVerb::CookParms &cookparms) const
bool opBindings_bindings_optional(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
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)
OP_NodeParms & operator=(const OP_NodeParms &)=default
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