23 namespace SOP_RayEnums
34 using namespace UT::Literal;
51 using namespace UT::Literal;
69 using namespace UT::Literal;
88 using namespace UT::Literal;
106 using namespace UT::Literal;
107 switch (enum_value) {
125 using namespace UT::Literal;
126 switch (enum_value) {
147 myCollision =
""_UTsh;
151 myDirAttrib =
"N"_UTsh;
153 myBidirectionalresult = 0;
161 myMaxraydistcheck =
false;
170 myHitgrp =
"rayHitGroup"_UTsh;
171 myUseprimnumattrib =
false;
172 myPrimnumattrib =
"hitprim"_UTsh;
173 myUseprimuvwattrib =
false;
174 myPrimuvwattrib =
"hitprimuv"_UTsh;
175 myGetptattribs =
false;
176 myPtattribnames =
"*"_UTsh;
177 myVertexattribnames =
""_UTsh;
178 myPrimitiveattribnames =
""_UTsh;
179 myDetailattribnames =
""_UTsh;
180 myGethitgroups =
false;
181 myPtgroupnames =
"*"_UTsh;
182 myVertexgroupnames =
""_UTsh;
183 myPrimitivegroupnames =
""_UTsh;
196 if (myGroup != src.myGroup)
return false;
197 if (myEntity != src.myEntity)
return false;
198 if (myCollision != src.myCollision)
return false;
199 if (myMethod != src.myMethod)
return false;
200 if (myDirMethod != src.myDirMethod)
return false;
201 if (myDir != src.myDir)
return false;
202 if (myDirAttrib != src.myDirAttrib)
return false;
203 if (myDirectiontype != src.myDirectiontype)
return false;
204 if (myBidirectionalresult != src.myBidirectionalresult)
return false;
205 if (myDotrans != src.myDotrans)
return false;
206 if (myShowguide != src.myShowguide)
return false;
207 if (myLookfar != src.myLookfar)
return false;
208 if (myRtolerance != src.myRtolerance)
return false;
209 if (myScale != src.myScale)
return false;
210 if (myLift != src.myLift)
return false;
211 if (myBias != src.myBias)
return false;
212 if (myMaxraydistcheck != src.myMaxraydistcheck)
return false;
213 if (myMaxraydist != src.myMaxraydist)
return false;
214 if (mySample != src.mySample)
return false;
215 if (myJitter != src.myJitter)
return false;
216 if (mySeed != src.mySeed)
return false;
217 if (myCombinetype != src.myCombinetype)
return false;
218 if (myPutnml != src.myPutnml)
return false;
219 if (myPutdist != src.myPutdist)
return false;
220 if (myNewgrp != src.myNewgrp)
return false;
221 if (myHitgrp != src.myHitgrp)
return false;
222 if (myUseprimnumattrib != src.myUseprimnumattrib)
return false;
223 if (myPrimnumattrib != src.myPrimnumattrib)
return false;
224 if (myUseprimuvwattrib != src.myUseprimuvwattrib)
return false;
225 if (myPrimuvwattrib != src.myPrimuvwattrib)
return false;
226 if (myGetptattribs != src.myGetptattribs)
return false;
227 if (myPtattribnames != src.myPtattribnames)
return false;
228 if (myVertexattribnames != src.myVertexattribnames)
return false;
229 if (myPrimitiveattribnames != src.myPrimitiveattribnames)
return false;
230 if (myDetailattribnames != src.myDetailattribnames)
return false;
231 if (myGethitgroups != src.myGethitgroups)
return false;
232 if (myPtgroupnames != src.myPtgroupnames)
return false;
233 if (myVertexgroupnames != src.myVertexgroupnames)
return false;
234 if (myPrimitivegroupnames != src.myPrimitivegroupnames)
return false;
258 graph->
evalOpParm(myGroup, nodeidx,
"group", time, graph->
isDirect()?
nullptr:depnode);
261 graph->
evalOpParm(myEntity, nodeidx,
"entity", time, graph->
isDirect()?
nullptr:depnode);
262 myCollision =
""_UTsh;
264 graph->
evalOpParm(myCollision, nodeidx,
"collision", time, graph->
isDirect()?
nullptr:depnode);
267 graph->
evalOpParm(myMethod, nodeidx,
"method", time, graph->
isDirect()?
nullptr:depnode);
269 if (
true && ( (
true&&!(((
int64(getMethod())!=1)))) ) )
270 graph->
evalOpParm(myDirMethod, nodeidx,
"dirmethod", time, graph->
isDirect()?
nullptr:depnode);
272 if (
true && ( (
true&&!(((
int64(getMethod())!=1))||((
int64(getDirMethod())!=0)))) ) )
274 myDirAttrib =
"N"_UTsh;
275 if (
true && ( (
true&&!(((
int64(getMethod())!=1))||((
int64(getDirMethod())!=2)))) ) )
276 graph->
evalOpParm(myDirAttrib, nodeidx,
"dirattrib", time, graph->
isDirect()?
nullptr:depnode);
278 if (
true && ( (
true&&!(((
int64(getMethod())!=1)))) ) )
279 graph->
evalOpParm(myDirectiontype, nodeidx,
"reverserays", time, graph->
isDirect()?
nullptr:depnode);
280 myBidirectionalresult = 0;
281 if (
true && ( (
true&&!(((
int64(getMethod())!=1))||((
int64(getDirectiontype())!=2)))) ) )
282 graph->
evalOpParm(myBidirectionalresult, nodeidx,
"bidirectionalresult", time, graph->
isDirect()?
nullptr:depnode);
285 graph->
evalOpParm(myDotrans, nodeidx,
"dotrans", time, graph->
isDirect()?
nullptr:depnode);
287 if (
true && ( (
true&&!(((
int64(getMethod())>=0)))) ) )
288 graph->
evalOpParm(myShowguide, nodeidx,
"showguide", time, graph->
isDirect()?
nullptr:depnode);
290 if (
true && ( (
true&&!(((
int64(getMethod())!=1)))) ) )
291 graph->
evalOpParm(myLookfar, nodeidx,
"lookfar", time, graph->
isDirect()?
nullptr:depnode);
293 if (
true && ( (
true&&!(((
int64(getMethod())!=1)))) ) )
294 graph->
evalOpParm(myRtolerance, nodeidx,
"rtolerance", time, graph->
isDirect()?
nullptr:depnode);
296 if (
true && ( (
true&&!(((getDotrans()==0)))) ) )
297 graph->
evalOpParm(myScale, nodeidx,
"scale", time, graph->
isDirect()?
nullptr:depnode);
302 if (
true && ( (
true&&!(((
int64(getMethod())!=1)))) ) )
304 myMaxraydistcheck =
false;
306 graph->
evalOpParm(myMaxraydistcheck, nodeidx,
"maxraydistcheck", time, graph->
isDirect()?
nullptr:depnode);
308 if (
true && ( (
true&&!(((getMaxraydistcheck()==0)))) ) )
309 graph->
evalOpParm(myMaxraydist, nodeidx,
"maxraydist", time, graph->
isDirect()?
nullptr:depnode);
311 if (
true && ( (
true&&!(((
int64(getMethod())!=1))||((
int64(getMethod())!=1)))) ) )
312 graph->
evalOpParm(mySample, nodeidx,
"sample", time, graph->
isDirect()?
nullptr:depnode);
314 if (
true && ( (
true&&!(((
int64(getMethod())!=1)))) ) )
315 graph->
evalOpParm(myJitter, nodeidx,
"jitter", time, graph->
isDirect()?
nullptr:depnode);
317 if (
true && ( (
true&&!(((
int64(getMethod())!=1)))) ) )
320 if (
true && ( (
true&&!(((
int64(getMethod())!=1)))) ) )
321 graph->
evalOpParm(myCombinetype, nodeidx,
"combinetype", time, graph->
isDirect()?
nullptr:depnode);
324 graph->
evalOpParm(myPutnml, nodeidx,
"putnml", time, graph->
isDirect()?
nullptr:depnode);
327 graph->
evalOpParm(myPutdist, nodeidx,
"putdist", time, graph->
isDirect()?
nullptr:depnode);
330 graph->
evalOpParm(myNewgrp, nodeidx,
"newgrp", time, graph->
isDirect()?
nullptr:depnode);
331 myHitgrp =
"rayHitGroup"_UTsh;
332 if (
true && ( (
true&&!(((getNewgrp()==0)))) ) )
333 graph->
evalOpParm(myHitgrp, nodeidx,
"hitgrp", time, graph->
isDirect()?
nullptr:depnode);
334 myUseprimnumattrib =
false;
336 graph->
evalOpParm(myUseprimnumattrib, nodeidx,
"useprimnumattrib", time, graph->
isDirect()?
nullptr:depnode);
337 myPrimnumattrib =
"hitprim"_UTsh;
338 if (
true && ( (
true&&!(((getUseprimnumattrib()==0)))) ) )
339 graph->
evalOpParm(myPrimnumattrib, nodeidx,
"primnumattrib", time, graph->
isDirect()?
nullptr:depnode);
340 myUseprimuvwattrib =
false;
342 graph->
evalOpParm(myUseprimuvwattrib, nodeidx,
"useprimuvwattrib", time, graph->
isDirect()?
nullptr:depnode);
343 myPrimuvwattrib =
"hitprimuv"_UTsh;
344 if (
true && ( (
true&&!(((getUseprimuvwattrib()==0)))) ) )
345 graph->
evalOpParm(myPrimuvwattrib, nodeidx,
"primuvwattrib", time, graph->
isDirect()?
nullptr:depnode);
346 myGetptattribs =
false;
348 graph->
evalOpParm(myGetptattribs, nodeidx,
"getptattribs", time, graph->
isDirect()?
nullptr:depnode);
349 myPtattribnames =
"*"_UTsh;
350 if (
true && ( (
true&&!(((getGetptattribs()==0)))) ) )
351 graph->
evalOpParm(myPtattribnames, nodeidx,
"ptattribnames", time, graph->
isDirect()?
nullptr:depnode);
352 myVertexattribnames =
""_UTsh;
353 if (
true && ( (
true&&!(((getGetptattribs()==0)))) ) )
354 graph->
evalOpParm(myVertexattribnames, nodeidx,
"vertexattribnames", time, graph->
isDirect()?
nullptr:depnode);
355 myPrimitiveattribnames =
""_UTsh;
356 if (
true && ( (
true&&!(((getGetptattribs()==0)))) ) )
357 graph->
evalOpParm(myPrimitiveattribnames, nodeidx,
"primitiveattribnames", time, graph->
isDirect()?
nullptr:depnode);
358 myDetailattribnames =
""_UTsh;
359 if (
true && ( (
true&&!(((getGetptattribs()==0)))) ) )
360 graph->
evalOpParm(myDetailattribnames, nodeidx,
"detailattribnames", time, graph->
isDirect()?
nullptr:depnode);
361 myGethitgroups =
false;
363 graph->
evalOpParm(myGethitgroups, nodeidx,
"gethitgroups", time, graph->
isDirect()?
nullptr:depnode);
364 myPtgroupnames =
"*"_UTsh;
365 if (
true && ( (
true&&!(((getGethitgroups()==0)))) ) )
366 graph->
evalOpParm(myPtgroupnames, nodeidx,
"ptgroupnames", time, graph->
isDirect()?
nullptr:depnode);
367 myVertexgroupnames =
""_UTsh;
368 if (
true && ( (
true&&!(((getGethitgroups()==0)))) ) )
369 graph->
evalOpParm(myVertexgroupnames, nodeidx,
"vertexgroupnames", time, graph->
isDirect()?
nullptr:depnode);
370 myPrimitivegroupnames =
""_UTsh;
371 if (
true && ( (
true&&!(((getGethitgroups()==0)))) ) )
372 graph->
evalOpParm(myPrimitivegroupnames, nodeidx,
"primitivegroupnames", time, graph->
isDirect()?
nullptr:depnode);
388 template <
typename T>
395 if (idx.
size() != instance.
size()+1)
400 coerceValue(value, myGroup);
403 coerceValue(value, myEntity);
406 coerceValue(value, myCollision);
409 coerceValue(value, myMethod);
412 coerceValue(value, myDirMethod);
415 coerceValue(value, myDir);
418 coerceValue(value, myDirAttrib);
421 coerceValue(value, myDirectiontype);
424 coerceValue(value, myBidirectionalresult);
427 coerceValue(value, myDotrans);
430 coerceValue(value, myShowguide);
433 coerceValue(value, myLookfar);
436 coerceValue(value, myRtolerance);
439 coerceValue(value, myScale);
442 coerceValue(value, myLift);
445 coerceValue(value, myBias);
448 coerceValue(value, myMaxraydistcheck);
451 coerceValue(value, myMaxraydist);
454 coerceValue(value, mySample);
457 coerceValue(value, myJitter);
460 coerceValue(value, mySeed);
463 coerceValue(value, myCombinetype);
466 coerceValue(value, myPutnml);
469 coerceValue(value, myPutdist);
472 coerceValue(value, myNewgrp);
475 coerceValue(value, myHitgrp);
478 coerceValue(value, myUseprimnumattrib);
481 coerceValue(value, myPrimnumattrib);
484 coerceValue(value, myUseprimuvwattrib);
487 coerceValue(value, myPrimuvwattrib);
490 coerceValue(value, myGetptattribs);
493 coerceValue(value, myPtattribnames);
496 coerceValue(value, myVertexattribnames);
499 coerceValue(value, myPrimitiveattribnames);
502 coerceValue(value, myDetailattribnames);
505 coerceValue(value, myGethitgroups);
508 coerceValue(value, myPtgroupnames);
511 coerceValue(value, myVertexgroupnames);
514 coerceValue(value, myPrimitivegroupnames);
530 { doGetParmValue(idx, instance, value); }
532 { doGetParmValue(idx, instance, value); }
534 { doGetParmValue(idx, instance, value); }
536 { doGetParmValue(idx, instance, value); }
538 { doGetParmValue(idx, instance, value); }
540 { doGetParmValue(idx, instance, value); }
542 { doGetParmValue(idx, instance, value); }
544 { doGetParmValue(idx, instance, value); }
546 { doGetParmValue(idx, instance, value); }
548 { doGetParmValue(idx, instance, value); }
550 { doGetParmValue(idx, instance, value); }
552 template <
typename T>
559 if (idx.
size() != instance.
size()+1)
564 coerceValue(myGroup, ( ( value ) ));
567 coerceValue(myEntity, clampMinValue(0, clampMaxValue(1, value ) ));
570 coerceValue(myCollision, ( ( value ) ));
573 coerceValue(myMethod, clampMinValue(0, clampMaxValue(1, value ) ));
576 coerceValue(myDirMethod, clampMinValue(0, clampMaxValue(2, value ) ));
579 coerceValue(myDir, ( ( value ) ));
582 coerceValue(myDirAttrib, ( ( value ) ));
585 coerceValue(myDirectiontype, clampMinValue(0, clampMaxValue(2, value ) ));
588 coerceValue(myBidirectionalresult, clampMinValue(0, clampMaxValue(1, value ) ));
591 coerceValue(myDotrans, ( ( value ) ));
594 coerceValue(myShowguide, ( ( value ) ));
597 coerceValue(myLookfar, ( ( value ) ));
600 coerceValue(myRtolerance, clampMinValue(0, clampMaxValue(1, value ) ));
603 coerceValue(myScale, ( ( value ) ));
606 coerceValue(myLift, ( ( value ) ));
609 coerceValue(myBias, ( ( value ) ));
612 coerceValue(myMaxraydistcheck, ( ( value ) ));
615 coerceValue(myMaxraydist, ( ( value ) ));
618 coerceValue(mySample, clampMinValue(1, ( value ) ));
621 coerceValue(myJitter, ( ( value ) ));
624 coerceValue(mySeed, clampMinValue(0, ( value ) ));
627 coerceValue(myCombinetype, clampMinValue(0, clampMaxValue(3, value ) ));
630 coerceValue(myPutnml, ( ( value ) ));
633 coerceValue(myPutdist, ( ( value ) ));
636 coerceValue(myNewgrp, ( ( value ) ));
639 coerceValue(myHitgrp, ( ( value ) ));
642 coerceValue(myUseprimnumattrib, ( ( value ) ));
645 coerceValue(myPrimnumattrib, ( ( value ) ));
648 coerceValue(myUseprimuvwattrib, ( ( value ) ));
651 coerceValue(myPrimuvwattrib, ( ( value ) ));
654 coerceValue(myGetptattribs, ( ( value ) ));
657 coerceValue(myPtattribnames, ( ( value ) ));
660 coerceValue(myVertexattribnames, ( ( value ) ));
663 coerceValue(myPrimitiveattribnames, ( ( value ) ));
666 coerceValue(myDetailattribnames, ( ( value ) ));
669 coerceValue(myGethitgroups, ( ( value ) ));
672 coerceValue(myPtgroupnames, ( ( value ) ));
675 coerceValue(myVertexgroupnames, ( ( value ) ));
678 coerceValue(myPrimitivegroupnames, ( ( value ) ));
685 { doSetParmValue(idx, instance, value); }
687 { doSetParmValue(idx, instance, value); }
689 { doSetParmValue(idx, instance, value); }
691 { doSetParmValue(idx, instance, value); }
693 { doSetParmValue(idx, instance, value); }
695 { doSetParmValue(idx, instance, value); }
697 { doSetParmValue(idx, instance, value); }
699 { doSetParmValue(idx, instance, value); }
701 { doSetParmValue(idx, instance, value); }
703 { doSetParmValue(idx, instance, value); }
705 { doSetParmValue(idx, instance, value); }
721 if (fieldnum.
size() < 1)
740 return "reverserays";
742 return "bidirectionalresult";
758 return "maxraydistcheck";
768 return "combinetype";
778 return "useprimnumattrib";
780 return "primnumattrib";
782 return "useprimuvwattrib";
784 return "primuvwattrib";
786 return "getptattribs";
788 return "ptattribnames";
790 return "vertexattribnames";
792 return "primitiveattribnames";
794 return "detailattribnames";
796 return "gethitgroups";
798 return "ptgroupnames";
800 return "vertexgroupnames";
802 return "primitivegroupnames";
810 if (fieldnum.
size() < 1)
811 return PARM_UNSUPPORTED;
894 return PARM_UNSUPPORTED;
930 loadData(is, rampdata);
948 int typelen = colon - data.
buffer();
962 {
int64 iv =
v; UTwrite(os, &iv); }
964 { UTwrite<fpreal64>(os, &
v); }
966 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
968 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
969 UTwrite<fpreal64>(os, &v.
z()); }
971 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
972 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
984 if (s) s->save(ostr);
986 saveData(os, result);
993 ostr << s->getDataTypeToken();
998 saveData(os, result);
1006 saveData(os, myGroup);
1007 saveData(os, myEntity);
1008 saveData(os, myCollision);
1009 saveData(os, myMethod);
1010 saveData(os, myDirMethod);
1011 saveData(os, myDir);
1012 saveData(os, myDirAttrib);
1013 saveData(os, myDirectiontype);
1014 saveData(os, myBidirectionalresult);
1015 saveData(os, myDotrans);
1016 saveData(os, myShowguide);
1017 saveData(os, myLookfar);
1018 saveData(os, myRtolerance);
1019 saveData(os, myScale);
1020 saveData(os, myLift);
1021 saveData(os, myBias);
1022 saveData(os, myMaxraydistcheck);
1023 saveData(os, myMaxraydist);
1024 saveData(os, mySample);
1025 saveData(os, myJitter);
1026 saveData(os, mySeed);
1027 saveData(os, myCombinetype);
1028 saveData(os, myPutnml);
1029 saveData(os, myPutdist);
1030 saveData(os, myNewgrp);
1031 saveData(os, myHitgrp);
1032 saveData(os, myUseprimnumattrib);
1033 saveData(os, myPrimnumattrib);
1034 saveData(os, myUseprimuvwattrib);
1035 saveData(os, myPrimuvwattrib);
1036 saveData(os, myGetptattribs);
1037 saveData(os, myPtattribnames);
1038 saveData(os, myVertexattribnames);
1039 saveData(os, myPrimitiveattribnames);
1040 saveData(os, myDetailattribnames);
1041 saveData(os, myGethitgroups);
1042 saveData(os, myPtgroupnames);
1043 saveData(os, myVertexgroupnames);
1044 saveData(os, myPrimitivegroupnames);
1057 loadData(is, myGroup);
1058 loadData(is, myEntity);
1059 loadData(is, myCollision);
1060 loadData(is, myMethod);
1061 loadData(is, myDirMethod);
1062 loadData(is, myDir);
1063 loadData(is, myDirAttrib);
1064 loadData(is, myDirectiontype);
1065 loadData(is, myBidirectionalresult);
1066 loadData(is, myDotrans);
1067 loadData(is, myShowguide);
1068 loadData(is, myLookfar);
1069 loadData(is, myRtolerance);
1070 loadData(is, myScale);
1071 loadData(is, myLift);
1072 loadData(is, myBias);
1073 loadData(is, myMaxraydistcheck);
1074 loadData(is, myMaxraydist);
1075 loadData(is, mySample);
1076 loadData(is, myJitter);
1077 loadData(is, mySeed);
1078 loadData(is, myCombinetype);
1079 loadData(is, myPutnml);
1080 loadData(is, myPutdist);
1081 loadData(is, myNewgrp);
1082 loadData(is, myHitgrp);
1083 loadData(is, myUseprimnumattrib);
1084 loadData(is, myPrimnumattrib);
1085 loadData(is, myUseprimuvwattrib);
1086 loadData(is, myPrimuvwattrib);
1087 loadData(is, myGetptattribs);
1088 loadData(is, myPtattribnames);
1089 loadData(is, myVertexattribnames);
1090 loadData(is, myPrimitiveattribnames);
1091 loadData(is, myDetailattribnames);
1092 loadData(is, myGethitgroups);
1093 loadData(is, myPtgroupnames);
1094 loadData(is, myVertexgroupnames);
1095 loadData(is, myPrimitivegroupnames);
1105 if (!thissop)
return getGroup();
1107 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
1115 if (!thissop)
return getEntity();
1117 OP_Utils::evalOpParm(result, thissop,
"entity", cookparms.
getCookTime(), 0);
1125 if (!thissop)
return getCollision();
1127 OP_Utils::evalOpParm(result, thissop,
"collision", cookparms.
getCookTime(), 0);
1135 if (!thissop)
return getMethod();
1137 OP_Utils::evalOpParm(result, thissop,
"method", cookparms.
getCookTime(), 0);
1145 if (!thissop)
return getDirMethod();
1147 OP_Utils::evalOpParm(result, thissop,
"dirmethod", cookparms.
getCookTime(), 0);
1155 if (!thissop)
return getDir();
1157 OP_Utils::evalOpParm(result, thissop,
"dir", cookparms.
getCookTime(), 0);
1165 if (!thissop)
return getDirAttrib();
1167 OP_Utils::evalOpParm(result, thissop,
"dirattrib", cookparms.
getCookTime(), 0);
1175 if (!thissop)
return getDirectiontype();
1177 OP_Utils::evalOpParm(result, thissop,
"reverserays", cookparms.
getCookTime(), 0);
1185 if (!thissop)
return getBidirectionalresult();
1187 OP_Utils::evalOpParm(result, thissop,
"bidirectionalresult", cookparms.
getCookTime(), 0);
1195 if (!thissop)
return getDotrans();
1197 OP_Utils::evalOpParm(result, thissop,
"dotrans", cookparms.
getCookTime(), 0);
1205 if (!thissop)
return getShowguide();
1207 OP_Utils::evalOpParm(result, thissop,
"showguide", cookparms.
getCookTime(), 0);
1215 if (!thissop)
return getLookfar();
1217 OP_Utils::evalOpParm(result, thissop,
"lookfar", cookparms.
getCookTime(), 0);
1225 if (!thissop)
return getRtolerance();
1227 OP_Utils::evalOpParm(result, thissop,
"rtolerance", cookparms.
getCookTime(), 0);
1237 OP_Utils::evalOpParm(result, thissop,
"scale", cookparms.
getCookTime(), 0);
1245 if (!thissop)
return getLift();
1247 OP_Utils::evalOpParm(result, thissop,
"lift", cookparms.
getCookTime(), 0);
1255 if (!thissop)
return getBias();
1257 OP_Utils::evalOpParm(result, thissop,
"bias", cookparms.
getCookTime(), 0);
1265 if (!thissop)
return getMaxraydistcheck();
1267 OP_Utils::evalOpParm(result, thissop,
"maxraydistcheck", cookparms.
getCookTime(), 0);
1275 if (!thissop)
return getMaxraydist();
1277 OP_Utils::evalOpParm(result, thissop,
"maxraydist", cookparms.
getCookTime(), 0);
1285 if (!thissop)
return getSample();
1287 OP_Utils::evalOpParm(result, thissop,
"sample", cookparms.
getCookTime(), 0);
1295 if (!thissop)
return getJitter();
1297 OP_Utils::evalOpParm(result, thissop,
"jitter", cookparms.
getCookTime(), 0);
1305 if (!thissop)
return getSeed();
1307 OP_Utils::evalOpParm(result, thissop,
"seed", cookparms.
getCookTime(), 0);
1315 if (!thissop)
return getCombinetype();
1317 OP_Utils::evalOpParm(result, thissop,
"combinetype", cookparms.
getCookTime(), 0);
1325 if (!thissop)
return getPutnml();
1327 OP_Utils::evalOpParm(result, thissop,
"putnml", cookparms.
getCookTime(), 0);
1335 if (!thissop)
return getPutdist();
1337 OP_Utils::evalOpParm(result, thissop,
"putdist", cookparms.
getCookTime(), 0);
1345 if (!thissop)
return getNewgrp();
1347 OP_Utils::evalOpParm(result, thissop,
"newgrp", cookparms.
getCookTime(), 0);
1355 if (!thissop)
return getHitgrp();
1357 OP_Utils::evalOpParm(result, thissop,
"hitgrp", cookparms.
getCookTime(), 0);
1365 if (!thissop)
return getUseprimnumattrib();
1367 OP_Utils::evalOpParm(result, thissop,
"useprimnumattrib", cookparms.
getCookTime(), 0);
1375 if (!thissop)
return getPrimnumattrib();
1377 OP_Utils::evalOpParm(result, thissop,
"primnumattrib", cookparms.
getCookTime(), 0);
1385 if (!thissop)
return getUseprimuvwattrib();
1387 OP_Utils::evalOpParm(result, thissop,
"useprimuvwattrib", cookparms.
getCookTime(), 0);
1395 if (!thissop)
return getPrimuvwattrib();
1397 OP_Utils::evalOpParm(result, thissop,
"primuvwattrib", cookparms.
getCookTime(), 0);
1405 if (!thissop)
return getGetptattribs();
1407 OP_Utils::evalOpParm(result, thissop,
"getptattribs", cookparms.
getCookTime(), 0);
1415 if (!thissop)
return getPtattribnames();
1417 OP_Utils::evalOpParm(result, thissop,
"ptattribnames", cookparms.
getCookTime(), 0);
1425 if (!thissop)
return getVertexattribnames();
1427 OP_Utils::evalOpParm(result, thissop,
"vertexattribnames", cookparms.
getCookTime(), 0);
1435 if (!thissop)
return getPrimitiveattribnames();
1437 OP_Utils::evalOpParm(result, thissop,
"primitiveattribnames", cookparms.
getCookTime(), 0);
1445 if (!thissop)
return getDetailattribnames();
1447 OP_Utils::evalOpParm(result, thissop,
"detailattribnames", cookparms.
getCookTime(), 0);
1455 if (!thissop)
return getGethitgroups();
1457 OP_Utils::evalOpParm(result, thissop,
"gethitgroups", cookparms.
getCookTime(), 0);
1465 if (!thissop)
return getPtgroupnames();
1467 OP_Utils::evalOpParm(result, thissop,
"ptgroupnames", cookparms.
getCookTime(), 0);
1475 if (!thissop)
return getVertexgroupnames();
1477 OP_Utils::evalOpParm(result, thissop,
"vertexgroupnames", cookparms.
getCookTime(), 0);
1485 if (!thissop)
return getPrimitivegroupnames();
1487 OP_Utils::evalOpParm(result, thissop,
"primitivegroupnames", cookparms.
getCookTime(), 0);
1499 int64 myDirectiontype;
1500 int64 myBidirectionalresult;
1508 bool myMaxraydistcheck;
1513 int64 myCombinetype;
1518 bool myUseprimnumattrib;
1520 bool myUseprimuvwattrib;
1522 bool myGetptattribs;
1527 bool myGethitgroups;
static void saveData(std::ostream &os, int64 v)
static void loadData(UT_IStream &is, UT_Vector3D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
void setPrimitiveattribnames(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_Vector2I &v)
bool getUseprimnumattrib() const
void setLift(fpreal64 val)
SOP_Node * getNode() const
void setHitgrp(const UT_StringHolder &val)
UT_StringHolder opCollision(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
const UT_StringHolder & getPrimitivegroupnames() const
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
const UT_StringHolder & getDetailattribnames() const
fpreal64 getJitter() const
bool opLookfar(const SOP_NodeVerb::CookParms &cookparms) const
void setVertexattribnames(const UT_StringHolder &val)
void setPtgroupnames(const UT_StringHolder &val)
UT_StringHolder opPrimuvwattrib(const SOP_NodeVerb::CookParms &cookparms) const
exint bread(int32 *buffer, exint asize=1)
static void loadData(UT_IStream &is, UT_Vector2D &v)
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
static void loadData(UT_IStream &is, int64 &v)
GLsizei const GLfloat * value
const UT_StringHolder & getVertexgroupnames() const
void setCombinetype(Combinetype val)
DirMethod opDirMethod(const SOP_NodeVerb::CookParms &cookparms) const
Method opMethod(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
void setPrimitivegroupnames(const UT_StringHolder &val)
void setBias(fpreal64 val)
void setPutdist(bool val)
UT_StringHolder opPrimitivegroupnames(const SOP_NodeVerb::CookParms &cookparms) const
const OP_Context & context() const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
bool opShowguide(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & z() noexcept
static void loadData(UT_IStream &is, UT_StringHolder &v)
SYS_FORCE_INLINE const char * buffer() const
DirMethod getDirMethod() const
void setMaxraydist(fpreal64 val)
fpreal64 opBias(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
An output stream object that owns its own string buffer storage.
**But if you need a result
static void loadData(UT_IStream &is, UT_Vector4D &v)
void setDotrans(bool val)
static void loadData(UT_IStream &is, UT_Matrix3D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
bool getShowguide() const
UT_StringHolder opPtattribnames(const SOP_NodeVerb::CookParms &cookparms) const
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
const UT_StringHolder & getDirAttrib() const
fpreal64 getScale() const
bool operator==(const SOP_RayParms &src) const
void setDirMethod(DirMethod val)
void setGroup(const UT_StringHolder &val)
constexpr SYS_FORCE_INLINE T & x() noexcept
Combinetype getCombinetype() const
const UT_StringHolder & getHitgrp() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
fpreal64 opScale(const SOP_NodeVerb::CookParms &cookparms) const
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
constexpr SYS_FORCE_INLINE T & x() noexcept
void setSample(int64 val)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
void setVertexgroupnames(const UT_StringHolder &val)
void setLookfar(bool val)
UT_StringHolder opPrimnumattrib(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opMaxraydist(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
bool opGethitgroups(const SOP_NodeVerb::CookParms &cookparms) const
Entity opEntity(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
const UT_StringHolder & getVertexattribnames() const
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
void setCollision(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_Matrix2D &v)
SYS_FORCE_INLINE const char * buffer() const
void setMaxraydistcheck(bool val)
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
constexpr SYS_FORCE_INLINE T & z() noexcept
void setMethod(Method val)
void setRtolerance(fpreal64 val)
Combinetype opCombinetype(const SOP_NodeVerb::CookParms &cookparms) const
bool opDotrans(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opRtolerance(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector3I &v)
const OP_GraphProxy * graph() const
static void saveData(std::ostream &os, UT_Vector3D v)
bool opNewgrp(const SOP_NodeVerb::CookParms &cookparms) const
bool opUseprimuvwattrib(const SOP_NodeVerb::CookParms &cookparms) const
void setUseprimnumattrib(bool val)
const char * getNestParmName(TempIndex fieldnum) const override
UT_StringHolder opPrimitiveattribnames(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3D getDir() const
const UT_StringHolder & getPrimitiveattribnames() const
Bidirectionalresult getBidirectionalresult() const
void loadFromOpSubclass(const LoadParms &loadparms) override
void setDetailattribnames(const UT_StringHolder &val)
void setUseprimuvwattrib(bool val)
void setGethitgroups(bool val)
static void saveData(std::ostream &os, UT_Matrix4D v)
UT_Vector3T< fpreal64 > UT_Vector3D
void setEntity(Entity val)
SYS_FORCE_INLINE UT_StringHolder getToken(Entity enum_value)
bool getGethitgroups() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
UT_StringHolder opPtgroupnames(const SOP_NodeVerb::CookParms &cookparms) const
bool getUseprimuvwattrib() const
void setGetptattribs(bool val)
void setShowguide(bool val)
bool opGetptattribs(const SOP_NodeVerb::CookParms &cookparms) const
void saveBinary(std::ostream &os) const
Save string to binary stream.
static void saveData(std::ostream &os, UT_Vector4D v)
GT_API const UT_StringHolder version
ParmType getNestParmType(TempIndex fieldnum) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
bool opMaxraydistcheck(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_StringHolder s)
UT_Vector3D opDir(const SOP_NodeVerb::CookParms &cookparms) const
void setDirAttrib(const UT_StringHolder &val)
void setJitter(fpreal64 val)
void setScale(fpreal64 val)
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
void setBidirectionalresult(Bidirectionalresult val)
fpreal64 opJitter(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getMaxraydist() const
static void saveData(std::ostream &os, UT_Matrix3D v)
void setPrimuvwattrib(const UT_StringHolder &val)
Directiontype opDirectiontype(const SOP_NodeVerb::CookParms &cookparms) const
bool isParmColorRamp(exint idx) const override
UT_StringHolder opVertexgroupnames(const SOP_NodeVerb::CookParms &cookparms) const
void save(std::ostream &os) const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
void setPrimnumattrib(const UT_StringHolder &val)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
fpreal64 opLift(const SOP_NodeVerb::CookParms &cookparms) const
DEP_MicroNode * depnode() const
exint getNestNumParms(TempIndex idx) const override
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
void setDir(UT_Vector3D val)
static void saveData(std::ostream &os, UT_Matrix2D v)
constexpr SYS_FORCE_INLINE T & w() noexcept
virtual UT_StringHolder baseGetSignature() const
Vec3< typename MatType::value_type > getScale(const MatType &mat)
Return a Vec3 representing the lengths of the passed matrix's upper 3×3's rows.
UT_StringHolder opDetailattribnames(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opVertexattribnames(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opHitgrp(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getPtgroupnames() const
static void loadData(UT_IStream &is, bool &v)
const UT_StringHolder & getPtattribnames() const
fpreal getCookTime() const
void setPtattribnames(const UT_StringHolder &val)
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
void setDirectiontype(Directiontype val)
bool getMaxraydistcheck() const
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
const UT_StringHolder & getGroup() const
fpreal64 getRtolerance() const
const char * findChar(int c) const
UT_StringHolder opDirAttrib(const SOP_NodeVerb::CookParms &cookparms) const
bool getGetptattribs() const
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void copyFrom(const OP_NodeParms *src) override
Bidirectionalresult opBidirectionalresult(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getCollision() const
constexpr SYS_FORCE_INLINE T & y() noexcept
static void saveData(std::ostream &os, UT_Vector2D v)
static void saveData(std::ostream &os, fpreal64 v)
const UT_StringHolder & getPrimuvwattrib() const
bool operator!=(const SOP_RayParms &src) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
bool opUseprimnumattrib(const SOP_NodeVerb::CookParms &cookparms) const
bool load(UT_IStream &is)
static void loadData(UT_IStream &is, fpreal64 &v)
static void loadData(UT_IStream &is, UT_Matrix4D &v)
bool opPutnml(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & y() noexcept
SYS_FORCE_INLINE bool isstring() const
bool opPutdist(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
const UT_StringHolder & getPrimnumattrib() const
int64 opSeed(const SOP_NodeVerb::CookParms &cookparms) const
int64 opSample(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, bool v)
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
static void loadData(UT_IStream &is, UT_Vector4I &v)
constexpr SYS_FORCE_INLINE T & x() noexcept
Directiontype getDirectiontype() const