23 namespace SOP_Scatter_2_0Enums
35 using namespace UT::Literal;
60 myUseDensityAttrib =
false;
61 myDensityAttrib =
"density"_UTsh;
62 myUseAreaAttrib =
false;
63 myAreaAttrib =
"area"_UTsh;
64 myUseAreaForVolumes =
false;
65 myUseDensityTexture =
false;
66 myDensityTexture =
"default.pic"_UTsh;
67 myUVAttrib =
"uv"_UTsh;
68 myCountPerPrimAttrib =
"count"_UTsh;
69 myUseEmergencyLimit =
true;
70 myEmergencyLimit = 1e+06;
72 myOverridePrimSeed =
false;
73 myPrimSeedAttrib =
"primid"_UTsh;
74 myRandomizeOrder =
true;
76 myRelaxIterations = 10;
77 myUseGeometricNormals =
false;
78 myUsePrimNumAttrib =
false;
79 myPrimNumAttrib =
"sourceprim"_UTsh;
80 myUsePrimUVWAttrib =
false;
81 myPrimUVWAttrib =
"sourceprimuv"_UTsh;
82 myUseOutputDensityAttrib =
false;
83 myOutputDensityAttrib =
"density"_UTsh;
84 myUseOutputRadiusAttrib =
false;
85 myOutputRadiusAttrib =
"pscale"_UTsh;
86 myUseOutputIdAttrib =
false;
87 myOutputIdAttrib =
"id"_UTsh;
88 myRadiusInTextureSpace =
false;
89 myPointAttribs =
"*"_UTsh;
90 myVertAttribs =
"N uv*"_UTsh;
91 myPrimAttribs =
""_UTsh;
92 myDetailAttribs =
""_UTsh;
93 myDetailAttribsAsDetail =
""_UTsh;
95 myUseMaxRadius =
true;
109 if (myGroup != src.myGroup)
return false;
110 if (myGenerateBy != src.myGenerateBy)
return false;
111 if (myIndepVoxel != src.myIndepVoxel)
return false;
112 if (myForceTotal != src.myForceTotal)
return false;
113 if (myNpts != src.myNpts)
return false;
114 if (myDensityScale != src.myDensityScale)
return false;
115 if (myUseDensityAttrib != src.myUseDensityAttrib)
return false;
116 if (myDensityAttrib != src.myDensityAttrib)
return false;
117 if (myUseAreaAttrib != src.myUseAreaAttrib)
return false;
118 if (myAreaAttrib != src.myAreaAttrib)
return false;
119 if (myUseAreaForVolumes != src.myUseAreaForVolumes)
return false;
120 if (myUseDensityTexture != src.myUseDensityTexture)
return false;
121 if (myDensityTexture != src.myDensityTexture)
return false;
122 if (myUVAttrib != src.myUVAttrib)
return false;
123 if (myCountPerPrimAttrib != src.myCountPerPrimAttrib)
return false;
124 if (myUseEmergencyLimit != src.myUseEmergencyLimit)
return false;
125 if (myEmergencyLimit != src.myEmergencyLimit)
return false;
126 if (mySeed != src.mySeed)
return false;
127 if (myOverridePrimSeed != src.myOverridePrimSeed)
return false;
128 if (myPrimSeedAttrib != src.myPrimSeedAttrib)
return false;
129 if (myRandomizeOrder != src.myRandomizeOrder)
return false;
130 if (myRelaxPoints != src.myRelaxPoints)
return false;
131 if (myRelaxIterations != src.myRelaxIterations)
return false;
132 if (myUseGeometricNormals != src.myUseGeometricNormals)
return false;
133 if (myUsePrimNumAttrib != src.myUsePrimNumAttrib)
return false;
134 if (myPrimNumAttrib != src.myPrimNumAttrib)
return false;
135 if (myUsePrimUVWAttrib != src.myUsePrimUVWAttrib)
return false;
136 if (myPrimUVWAttrib != src.myPrimUVWAttrib)
return false;
137 if (myUseOutputDensityAttrib != src.myUseOutputDensityAttrib)
return false;
138 if (myOutputDensityAttrib != src.myOutputDensityAttrib)
return false;
139 if (myUseOutputRadiusAttrib != src.myUseOutputRadiusAttrib)
return false;
140 if (myOutputRadiusAttrib != src.myOutputRadiusAttrib)
return false;
141 if (myUseOutputIdAttrib != src.myUseOutputIdAttrib)
return false;
142 if (myOutputIdAttrib != src.myOutputIdAttrib)
return false;
143 if (myRadiusInTextureSpace != src.myRadiusInTextureSpace)
return false;
144 if (myPointAttribs != src.myPointAttribs)
return false;
145 if (myVertAttribs != src.myVertAttribs)
return false;
146 if (myPrimAttribs != src.myPrimAttribs)
return false;
147 if (myDetailAttribs != src.myDetailAttribs)
return false;
148 if (myDetailAttribsAsDetail != src.myDetailAttribsAsDetail)
return false;
149 if (myScaleRadiiBy != src.myScaleRadiiBy)
return false;
150 if (myUseMaxRadius != src.myUseMaxRadius)
return false;
151 if (myMaxRadius != src.myMaxRadius)
return false;
167 graph->
evalOpParm(myGroup, nodeidx,
"group", time, 0);
170 graph->
evalOpParm(myGenerateBy, nodeidx,
"generateby", time, 0);
171 myIndepVoxel =
false;
172 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=0)))) ) )
173 graph->
evalOpParm(myIndepVoxel, nodeidx,
"indepvoxel", time, 0);
175 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=0))||((getIndepVoxel()==1)))) ) )
176 graph->
evalOpParm(myForceTotal, nodeidx,
"forcetotal", time, 0);
178 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=0))||((getForceTotal()==0))||((getIndepVoxel()==1)))) ) )
179 graph->
evalOpParm(myNpts, nodeidx,
"npts", time, 0);
181 if (
true && ( (
true&&!(((
int64(getGenerateBy())==1))||((
int64(getGenerateBy())==0)&&(getForceTotal()==1)&&(getIndepVoxel()==0)))) ) )
182 graph->
evalOpParm(myDensityScale, nodeidx,
"densityscale", time, 0);
183 myUseDensityAttrib =
false;
184 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=0)))) ) )
185 graph->
evalOpParm(myUseDensityAttrib, nodeidx,
"usedensityattrib", time, 0);
186 myDensityAttrib =
"density"_UTsh;
187 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=0))||((getUseDensityAttrib()==0)))) ) )
188 graph->
evalOpParm(myDensityAttrib, nodeidx,
"densityattrib", time, 0);
189 myUseAreaAttrib =
false;
190 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=0)))) ) )
191 graph->
evalOpParm(myUseAreaAttrib, nodeidx,
"useareaattrib", time, 0);
192 myAreaAttrib =
"area"_UTsh;
193 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=0))||((getUseAreaAttrib()==0)))) ) )
194 graph->
evalOpParm(myAreaAttrib, nodeidx,
"areaattrib", time, 0);
195 myUseAreaForVolumes =
false;
196 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=0))||((getForceTotal()==1)&&(getIndepVoxel()==0)))) ) )
197 graph->
evalOpParm(myUseAreaForVolumes, nodeidx,
"useareaforvolumes", time, 0);
198 myUseDensityTexture =
false;
199 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=2)))) ) )
200 graph->
evalOpParm(myUseDensityTexture, nodeidx,
"usedensitytexture", time, 0);
201 myDensityTexture =
"default.pic"_UTsh;
202 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=2))||((getUseDensityTexture()==0)))) ) )
203 graph->
evalOpParm(myDensityTexture, nodeidx,
"densitytexture", time, 0);
204 myUVAttrib =
"uv"_UTsh;
205 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=2)))) ) )
206 graph->
evalOpParm(myUVAttrib, nodeidx,
"uvattrib", time, 0);
207 myCountPerPrimAttrib =
"count"_UTsh;
208 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=1)))) ) )
209 graph->
evalOpParm(myCountPerPrimAttrib, nodeidx,
"primcountattrib", time, 0);
210 myUseEmergencyLimit =
true;
212 graph->
evalOpParm(myUseEmergencyLimit, nodeidx,
"useemergencylimit", time, 0);
213 myEmergencyLimit = 1e+06;
214 if (
true && ( (
true&&!(((getUseEmergencyLimit()==0)))) ) )
215 graph->
evalOpParm(myEmergencyLimit, nodeidx,
"emergencylimit", time, 0);
218 graph->
evalOpParm(mySeed, nodeidx,
"seed", time, 0);
219 myOverridePrimSeed =
false;
220 if (
true && ( (
true&&!(((
int64(getGenerateBy())==2)))) ) )
221 graph->
evalOpParm(myOverridePrimSeed, nodeidx,
"overrideprimseed", time, 0);
222 myPrimSeedAttrib =
"primid"_UTsh;
223 if (
true && ( (
true&&!(((
int64(getGenerateBy())==2))||((getOverridePrimSeed()==0)))) ) )
224 graph->
evalOpParm(myPrimSeedAttrib, nodeidx,
"primseedattrib", time, 0);
225 myRandomizeOrder =
true;
227 graph->
evalOpParm(myRandomizeOrder, nodeidx,
"randomizeorder", time, 0);
228 myRelaxPoints =
true;
230 graph->
evalOpParm(myRelaxPoints, nodeidx,
"relaxpoints", time, 0);
231 myRelaxIterations = 10;
232 if (
true && ( (
true&&!(((getRelaxPoints()==0)))) ) )
233 graph->
evalOpParm(myRelaxIterations, nodeidx,
"relaxiterations", time, 0);
234 myUseGeometricNormals =
false;
235 if (
true && ( (
true&&!(((getRelaxPoints()==0)))) ) )
236 graph->
evalOpParm(myUseGeometricNormals, nodeidx,
"usegeometricnormals", time, 0);
237 myUsePrimNumAttrib =
false;
239 graph->
evalOpParm(myUsePrimNumAttrib, nodeidx,
"useprimnumattrib", time, 0);
240 myPrimNumAttrib =
"sourceprim"_UTsh;
241 if (
true && ( (
true&&!(((getUsePrimNumAttrib()==0)))) ) )
242 graph->
evalOpParm(myPrimNumAttrib, nodeidx,
"primnumattrib", time, 0);
243 myUsePrimUVWAttrib =
false;
245 graph->
evalOpParm(myUsePrimUVWAttrib, nodeidx,
"useprimuvwattrib", time, 0);
246 myPrimUVWAttrib =
"sourceprimuv"_UTsh;
247 if (
true && ( (
true&&!(((getUsePrimUVWAttrib()==0)))) ) )
248 graph->
evalOpParm(myPrimUVWAttrib, nodeidx,
"primuvwattrib", time, 0);
249 myUseOutputDensityAttrib =
false;
251 graph->
evalOpParm(myUseOutputDensityAttrib, nodeidx,
"useoutputdensityattrib", time, 0);
252 myOutputDensityAttrib =
"density"_UTsh;
253 if (
true && ( (
true&&!(((getUseOutputDensityAttrib()==0)))) ) )
254 graph->
evalOpParm(myOutputDensityAttrib, nodeidx,
"outputdensityattrib", time, 0);
255 myUseOutputRadiusAttrib =
false;
257 graph->
evalOpParm(myUseOutputRadiusAttrib, nodeidx,
"useoutputradiusattrib", time, 0);
258 myOutputRadiusAttrib =
"pscale"_UTsh;
259 if (
true && ( (
true&&!(((getUseOutputRadiusAttrib()==0)))) ) )
260 graph->
evalOpParm(myOutputRadiusAttrib, nodeidx,
"outputradiusattrib", time, 0);
261 myUseOutputIdAttrib =
false;
263 graph->
evalOpParm(myUseOutputIdAttrib, nodeidx,
"useoutputidattrib", time, 0);
264 myOutputIdAttrib =
"id"_UTsh;
265 if (
true && ( (
true&&!(((getUseOutputIdAttrib()==0)))) ) )
266 graph->
evalOpParm(myOutputIdAttrib, nodeidx,
"outputidattrib", time, 0);
267 myRadiusInTextureSpace =
false;
268 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=2))||((getUseOutputRadiusAttrib()==0)&&(getUseOutputDensityAttrib()==0)))) ) )
269 graph->
evalOpParm(myRadiusInTextureSpace, nodeidx,
"radiusintexturespace", time, 0);
270 myPointAttribs =
"*"_UTsh;
272 graph->
evalOpParm(myPointAttribs, nodeidx,
"pointattribs", time, 0);
273 myVertAttribs =
"N uv*"_UTsh;
275 graph->
evalOpParm(myVertAttribs, nodeidx,
"vertattribs", time, 0);
276 myPrimAttribs =
""_UTsh;
278 graph->
evalOpParm(myPrimAttribs, nodeidx,
"primattribs", time, 0);
279 myDetailAttribs =
""_UTsh;
281 graph->
evalOpParm(myDetailAttribs, nodeidx,
"detailattribs", time, 0);
282 myDetailAttribsAsDetail =
""_UTsh;
284 graph->
evalOpParm(myDetailAttribsAsDetail, nodeidx,
"detailattribsasdetail", time, 0);
286 if (
true && ( (
true&&!(((getRelaxPoints()==0)&&(getUseOutputRadiusAttrib()==0)))) ) )
287 graph->
evalOpParm(myScaleRadiiBy, nodeidx,
"scaleradiiby", time, 0);
288 myUseMaxRadius =
true;
289 if (
true && ( (
true&&!(((getRelaxPoints()==0)&&(getUseOutputRadiusAttrib()==0)))) ) )
290 graph->
evalOpParm(myUseMaxRadius, nodeidx,
"usemaxradius", time, 0);
292 if (
true && ( (
true&&!(((getRelaxPoints()==0)&&(getUseOutputRadiusAttrib()==0))||((getUseMaxRadius()==0)))) ) )
293 graph->
evalOpParm(myMaxRadius, nodeidx,
"maxradius", time, 0);
309 template <
typename T>
316 if (idx.
size() != instance.
size()+1)
321 coerceValue(value, myGroup);
324 coerceValue(value, myGenerateBy);
327 coerceValue(value, myIndepVoxel);
330 coerceValue(value, myForceTotal);
333 coerceValue(value, myNpts);
336 coerceValue(value, myDensityScale);
339 coerceValue(value, myUseDensityAttrib);
342 coerceValue(value, myDensityAttrib);
345 coerceValue(value, myUseAreaAttrib);
348 coerceValue(value, myAreaAttrib);
351 coerceValue(value, myUseAreaForVolumes);
354 coerceValue(value, myUseDensityTexture);
357 coerceValue(value, myDensityTexture);
360 coerceValue(value, myUVAttrib);
363 coerceValue(value, myCountPerPrimAttrib);
366 coerceValue(value, myUseEmergencyLimit);
369 coerceValue(value, myEmergencyLimit);
372 coerceValue(value, mySeed);
375 coerceValue(value, myOverridePrimSeed);
378 coerceValue(value, myPrimSeedAttrib);
381 coerceValue(value, myRandomizeOrder);
384 coerceValue(value, myRelaxPoints);
387 coerceValue(value, myRelaxIterations);
390 coerceValue(value, myUseGeometricNormals);
393 coerceValue(value, myUsePrimNumAttrib);
396 coerceValue(value, myPrimNumAttrib);
399 coerceValue(value, myUsePrimUVWAttrib);
402 coerceValue(value, myPrimUVWAttrib);
405 coerceValue(value, myUseOutputDensityAttrib);
408 coerceValue(value, myOutputDensityAttrib);
411 coerceValue(value, myUseOutputRadiusAttrib);
414 coerceValue(value, myOutputRadiusAttrib);
417 coerceValue(value, myUseOutputIdAttrib);
420 coerceValue(value, myOutputIdAttrib);
423 coerceValue(value, myRadiusInTextureSpace);
426 coerceValue(value, myPointAttribs);
429 coerceValue(value, myVertAttribs);
432 coerceValue(value, myPrimAttribs);
435 coerceValue(value, myDetailAttribs);
438 coerceValue(value, myDetailAttribsAsDetail);
441 coerceValue(value, myScaleRadiiBy);
444 coerceValue(value, myUseMaxRadius);
447 coerceValue(value, myMaxRadius);
463 { doGetParmValue(idx, instance, value); }
465 { doGetParmValue(idx, instance, value); }
467 { doGetParmValue(idx, instance, value); }
469 { doGetParmValue(idx, instance, value); }
471 { doGetParmValue(idx, instance, value); }
473 { doGetParmValue(idx, instance, value); }
475 { doGetParmValue(idx, instance, value); }
477 { doGetParmValue(idx, instance, value); }
479 { doGetParmValue(idx, instance, value); }
481 { doGetParmValue(idx, instance, value); }
483 { doGetParmValue(idx, instance, value); }
485 template <
typename T>
492 if (idx.
size() != instance.
size()+1)
497 coerceValue(myGroup, ( ( value ) ));
500 coerceValue(myGenerateBy, clampMinValue(0, clampMaxValue(2, value ) ));
503 coerceValue(myIndepVoxel, ( ( value ) ));
506 coerceValue(myForceTotal, ( ( value ) ));
509 coerceValue(myNpts, ( ( value ) ));
512 coerceValue(myDensityScale, ( ( value ) ));
515 coerceValue(myUseDensityAttrib, ( ( value ) ));
518 coerceValue(myDensityAttrib, ( ( value ) ));
521 coerceValue(myUseAreaAttrib, ( ( value ) ));
524 coerceValue(myAreaAttrib, ( ( value ) ));
527 coerceValue(myUseAreaForVolumes, ( ( value ) ));
530 coerceValue(myUseDensityTexture, ( ( value ) ));
533 coerceValue(myDensityTexture, ( ( value ) ));
536 coerceValue(myUVAttrib, ( ( value ) ));
539 coerceValue(myCountPerPrimAttrib, ( ( value ) ));
542 coerceValue(myUseEmergencyLimit, ( ( value ) ));
545 coerceValue(myEmergencyLimit, ( ( value ) ));
548 coerceValue(mySeed, ( ( value ) ));
551 coerceValue(myOverridePrimSeed, ( ( value ) ));
554 coerceValue(myPrimSeedAttrib, ( ( value ) ));
557 coerceValue(myRandomizeOrder, ( ( value ) ));
560 coerceValue(myRelaxPoints, ( ( value ) ));
563 coerceValue(myRelaxIterations, clampMinValue(0, ( value ) ));
566 coerceValue(myUseGeometricNormals, ( ( value ) ));
569 coerceValue(myUsePrimNumAttrib, ( ( value ) ));
572 coerceValue(myPrimNumAttrib, ( ( value ) ));
575 coerceValue(myUsePrimUVWAttrib, ( ( value ) ));
578 coerceValue(myPrimUVWAttrib, ( ( value ) ));
581 coerceValue(myUseOutputDensityAttrib, ( ( value ) ));
584 coerceValue(myOutputDensityAttrib, ( ( value ) ));
587 coerceValue(myUseOutputRadiusAttrib, ( ( value ) ));
590 coerceValue(myOutputRadiusAttrib, ( ( value ) ));
593 coerceValue(myUseOutputIdAttrib, ( ( value ) ));
596 coerceValue(myOutputIdAttrib, ( ( value ) ));
599 coerceValue(myRadiusInTextureSpace, ( ( value ) ));
602 coerceValue(myPointAttribs, ( ( value ) ));
605 coerceValue(myVertAttribs, ( ( value ) ));
608 coerceValue(myPrimAttribs, ( ( value ) ));
611 coerceValue(myDetailAttribs, ( ( value ) ));
614 coerceValue(myDetailAttribsAsDetail, ( ( value ) ));
617 coerceValue(myScaleRadiiBy, clampMinValue(0, ( value ) ));
620 coerceValue(myUseMaxRadius, ( ( value ) ));
623 coerceValue(myMaxRadius, clampMinValue(0, ( value ) ));
630 { doSetParmValue(idx, instance, value); }
632 { doSetParmValue(idx, instance, value); }
634 { doSetParmValue(idx, instance, value); }
636 { doSetParmValue(idx, instance, value); }
638 { doSetParmValue(idx, instance, value); }
640 { doSetParmValue(idx, instance, value); }
642 { doSetParmValue(idx, instance, value); }
644 { doSetParmValue(idx, instance, value); }
646 { doSetParmValue(idx, instance, value); }
648 { doSetParmValue(idx, instance, value); }
650 { doSetParmValue(idx, instance, value); }
666 if (fieldnum.
size() < 1)
681 return "densityscale";
683 return "usedensityattrib";
685 return "densityattrib";
687 return "useareaattrib";
691 return "useareaforvolumes";
693 return "usedensitytexture";
695 return "densitytexture";
699 return "primcountattrib";
701 return "useemergencylimit";
703 return "emergencylimit";
707 return "overrideprimseed";
709 return "primseedattrib";
711 return "randomizeorder";
713 return "relaxpoints";
715 return "relaxiterations";
717 return "usegeometricnormals";
719 return "useprimnumattrib";
721 return "primnumattrib";
723 return "useprimuvwattrib";
725 return "primuvwattrib";
727 return "useoutputdensityattrib";
729 return "outputdensityattrib";
731 return "useoutputradiusattrib";
733 return "outputradiusattrib";
735 return "useoutputidattrib";
737 return "outputidattrib";
739 return "radiusintexturespace";
741 return "pointattribs";
743 return "vertattribs";
745 return "primattribs";
747 return "detailattribs";
749 return "detailattribsasdetail";
751 return "scaleradiiby";
753 return "usemaxradius";
763 if (fieldnum.
size() < 1)
764 return PARM_UNSUPPORTED;
855 return PARM_UNSUPPORTED;
891 loadData(is, rampdata);
909 int typelen = colon - data.
buffer();
923 {
int64 iv =
v; UTwrite(os, &iv); }
925 { UTwrite<fpreal64>(os, &
v); }
927 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
929 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
930 UTwrite<fpreal64>(os, &v.
z()); }
932 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
933 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
945 if (s) s->save(ostr);
947 saveData(os, result);
954 ostr << s->getDataTypeToken();
959 saveData(os, result);
963 void save(std::ostream &os)
const
967 saveData(os, myGroup);
968 saveData(os, myGenerateBy);
969 saveData(os, myIndepVoxel);
970 saveData(os, myForceTotal);
971 saveData(os, myNpts);
972 saveData(os, myDensityScale);
973 saveData(os, myUseDensityAttrib);
974 saveData(os, myDensityAttrib);
975 saveData(os, myUseAreaAttrib);
976 saveData(os, myAreaAttrib);
977 saveData(os, myUseAreaForVolumes);
978 saveData(os, myUseDensityTexture);
979 saveData(os, myDensityTexture);
980 saveData(os, myUVAttrib);
981 saveData(os, myCountPerPrimAttrib);
982 saveData(os, myUseEmergencyLimit);
983 saveData(os, myEmergencyLimit);
984 saveData(os, mySeed);
985 saveData(os, myOverridePrimSeed);
986 saveData(os, myPrimSeedAttrib);
987 saveData(os, myRandomizeOrder);
988 saveData(os, myRelaxPoints);
989 saveData(os, myRelaxIterations);
990 saveData(os, myUseGeometricNormals);
991 saveData(os, myUsePrimNumAttrib);
992 saveData(os, myPrimNumAttrib);
993 saveData(os, myUsePrimUVWAttrib);
994 saveData(os, myPrimUVWAttrib);
995 saveData(os, myUseOutputDensityAttrib);
996 saveData(os, myOutputDensityAttrib);
997 saveData(os, myUseOutputRadiusAttrib);
998 saveData(os, myOutputRadiusAttrib);
999 saveData(os, myUseOutputIdAttrib);
1000 saveData(os, myOutputIdAttrib);
1001 saveData(os, myRadiusInTextureSpace);
1002 saveData(os, myPointAttribs);
1003 saveData(os, myVertAttribs);
1004 saveData(os, myPrimAttribs);
1005 saveData(os, myDetailAttribs);
1006 saveData(os, myDetailAttribsAsDetail);
1007 saveData(os, myScaleRadiiBy);
1008 saveData(os, myUseMaxRadius);
1009 saveData(os, myMaxRadius);
1022 loadData(is, myGroup);
1023 loadData(is, myGenerateBy);
1024 loadData(is, myIndepVoxel);
1025 loadData(is, myForceTotal);
1026 loadData(is, myNpts);
1027 loadData(is, myDensityScale);
1028 loadData(is, myUseDensityAttrib);
1029 loadData(is, myDensityAttrib);
1030 loadData(is, myUseAreaAttrib);
1031 loadData(is, myAreaAttrib);
1032 loadData(is, myUseAreaForVolumes);
1033 loadData(is, myUseDensityTexture);
1034 loadData(is, myDensityTexture);
1035 loadData(is, myUVAttrib);
1036 loadData(is, myCountPerPrimAttrib);
1037 loadData(is, myUseEmergencyLimit);
1038 loadData(is, myEmergencyLimit);
1039 loadData(is, mySeed);
1040 loadData(is, myOverridePrimSeed);
1041 loadData(is, myPrimSeedAttrib);
1042 loadData(is, myRandomizeOrder);
1043 loadData(is, myRelaxPoints);
1044 loadData(is, myRelaxIterations);
1045 loadData(is, myUseGeometricNormals);
1046 loadData(is, myUsePrimNumAttrib);
1047 loadData(is, myPrimNumAttrib);
1048 loadData(is, myUsePrimUVWAttrib);
1049 loadData(is, myPrimUVWAttrib);
1050 loadData(is, myUseOutputDensityAttrib);
1051 loadData(is, myOutputDensityAttrib);
1052 loadData(is, myUseOutputRadiusAttrib);
1053 loadData(is, myOutputRadiusAttrib);
1054 loadData(is, myUseOutputIdAttrib);
1055 loadData(is, myOutputIdAttrib);
1056 loadData(is, myRadiusInTextureSpace);
1057 loadData(is, myPointAttribs);
1058 loadData(is, myVertAttribs);
1059 loadData(is, myPrimAttribs);
1060 loadData(is, myDetailAttribs);
1061 loadData(is, myDetailAttribsAsDetail);
1062 loadData(is, myScaleRadiiBy);
1063 loadData(is, myUseMaxRadius);
1064 loadData(is, myMaxRadius);
1074 if (!thissop)
return getGroup();
1076 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
1084 if (!thissop)
return getGenerateBy();
1086 OP_Utils::evalOpParm(result, thissop,
"generateby", cookparms.
getCookTime(), 0);
1094 if (!thissop)
return getIndepVoxel();
1096 OP_Utils::evalOpParm(result, thissop,
"indepvoxel", cookparms.
getCookTime(), 0);
1104 if (!thissop)
return getForceTotal();
1106 OP_Utils::evalOpParm(result, thissop,
"forcetotal", cookparms.
getCookTime(), 0);
1114 if (!thissop)
return getNpts();
1116 OP_Utils::evalOpParm(result, thissop,
"npts", cookparms.
getCookTime(), 0);
1124 if (!thissop)
return getDensityScale();
1126 OP_Utils::evalOpParm(result, thissop,
"densityscale", cookparms.
getCookTime(), 0);
1134 if (!thissop)
return getUseDensityAttrib();
1136 OP_Utils::evalOpParm(result, thissop,
"usedensityattrib", cookparms.
getCookTime(), 0);
1144 if (!thissop)
return getDensityAttrib();
1146 OP_Utils::evalOpParm(result, thissop,
"densityattrib", cookparms.
getCookTime(), 0);
1154 if (!thissop)
return getUseAreaAttrib();
1156 OP_Utils::evalOpParm(result, thissop,
"useareaattrib", cookparms.
getCookTime(), 0);
1164 if (!thissop)
return getAreaAttrib();
1166 OP_Utils::evalOpParm(result, thissop,
"areaattrib", cookparms.
getCookTime(), 0);
1174 if (!thissop)
return getUseAreaForVolumes();
1176 OP_Utils::evalOpParm(result, thissop,
"useareaforvolumes", cookparms.
getCookTime(), 0);
1184 if (!thissop)
return getUseDensityTexture();
1186 OP_Utils::evalOpParm(result, thissop,
"usedensitytexture", cookparms.
getCookTime(), 0);
1194 if (!thissop)
return getDensityTexture();
1196 OP_Utils::evalOpParm(result, thissop,
"densitytexture", cookparms.
getCookTime(), 0);
1204 if (!thissop)
return getUVAttrib();
1206 OP_Utils::evalOpParm(result, thissop,
"uvattrib", cookparms.
getCookTime(), 0);
1214 if (!thissop)
return getCountPerPrimAttrib();
1216 OP_Utils::evalOpParm(result, thissop,
"primcountattrib", cookparms.
getCookTime(), 0);
1224 if (!thissop)
return getUseEmergencyLimit();
1226 OP_Utils::evalOpParm(result, thissop,
"useemergencylimit", cookparms.
getCookTime(), 0);
1234 if (!thissop)
return getEmergencyLimit();
1236 OP_Utils::evalOpParm(result, thissop,
"emergencylimit", cookparms.
getCookTime(), 0);
1244 if (!thissop)
return getSeed();
1246 OP_Utils::evalOpParm(result, thissop,
"seed", cookparms.
getCookTime(), 0);
1254 if (!thissop)
return getOverridePrimSeed();
1256 OP_Utils::evalOpParm(result, thissop,
"overrideprimseed", cookparms.
getCookTime(), 0);
1264 if (!thissop)
return getPrimSeedAttrib();
1266 OP_Utils::evalOpParm(result, thissop,
"primseedattrib", cookparms.
getCookTime(), 0);
1274 if (!thissop)
return getRandomizeOrder();
1276 OP_Utils::evalOpParm(result, thissop,
"randomizeorder", cookparms.
getCookTime(), 0);
1284 if (!thissop)
return getRelaxPoints();
1286 OP_Utils::evalOpParm(result, thissop,
"relaxpoints", cookparms.
getCookTime(), 0);
1294 if (!thissop)
return getRelaxIterations();
1296 OP_Utils::evalOpParm(result, thissop,
"relaxiterations", cookparms.
getCookTime(), 0);
1304 if (!thissop)
return getUseGeometricNormals();
1306 OP_Utils::evalOpParm(result, thissop,
"usegeometricnormals", cookparms.
getCookTime(), 0);
1314 if (!thissop)
return getUsePrimNumAttrib();
1316 OP_Utils::evalOpParm(result, thissop,
"useprimnumattrib", cookparms.
getCookTime(), 0);
1324 if (!thissop)
return getPrimNumAttrib();
1326 OP_Utils::evalOpParm(result, thissop,
"primnumattrib", cookparms.
getCookTime(), 0);
1334 if (!thissop)
return getUsePrimUVWAttrib();
1336 OP_Utils::evalOpParm(result, thissop,
"useprimuvwattrib", cookparms.
getCookTime(), 0);
1344 if (!thissop)
return getPrimUVWAttrib();
1346 OP_Utils::evalOpParm(result, thissop,
"primuvwattrib", cookparms.
getCookTime(), 0);
1354 if (!thissop)
return getUseOutputDensityAttrib();
1356 OP_Utils::evalOpParm(result, thissop,
"useoutputdensityattrib", cookparms.
getCookTime(), 0);
1364 if (!thissop)
return getOutputDensityAttrib();
1366 OP_Utils::evalOpParm(result, thissop,
"outputdensityattrib", cookparms.
getCookTime(), 0);
1374 if (!thissop)
return getUseOutputRadiusAttrib();
1376 OP_Utils::evalOpParm(result, thissop,
"useoutputradiusattrib", cookparms.
getCookTime(), 0);
1384 if (!thissop)
return getOutputRadiusAttrib();
1386 OP_Utils::evalOpParm(result, thissop,
"outputradiusattrib", cookparms.
getCookTime(), 0);
1394 if (!thissop)
return getUseOutputIdAttrib();
1396 OP_Utils::evalOpParm(result, thissop,
"useoutputidattrib", cookparms.
getCookTime(), 0);
1404 if (!thissop)
return getOutputIdAttrib();
1406 OP_Utils::evalOpParm(result, thissop,
"outputidattrib", cookparms.
getCookTime(), 0);
1414 if (!thissop)
return getRadiusInTextureSpace();
1416 OP_Utils::evalOpParm(result, thissop,
"radiusintexturespace", cookparms.
getCookTime(), 0);
1424 if (!thissop)
return getPointAttribs();
1426 OP_Utils::evalOpParm(result, thissop,
"pointattribs", cookparms.
getCookTime(), 0);
1434 if (!thissop)
return getVertAttribs();
1436 OP_Utils::evalOpParm(result, thissop,
"vertattribs", cookparms.
getCookTime(), 0);
1444 if (!thissop)
return getPrimAttribs();
1446 OP_Utils::evalOpParm(result, thissop,
"primattribs", cookparms.
getCookTime(), 0);
1454 if (!thissop)
return getDetailAttribs();
1456 OP_Utils::evalOpParm(result, thissop,
"detailattribs", cookparms.
getCookTime(), 0);
1464 if (!thissop)
return getDetailAttribsAsDetail();
1466 OP_Utils::evalOpParm(result, thissop,
"detailattribsasdetail", cookparms.
getCookTime(), 0);
1474 if (!thissop)
return getScaleRadiiBy();
1476 OP_Utils::evalOpParm(result, thissop,
"scaleradiiby", cookparms.
getCookTime(), 0);
1484 if (!thissop)
return getUseMaxRadius();
1486 OP_Utils::evalOpParm(result, thissop,
"usemaxradius", cookparms.
getCookTime(), 0);
1494 if (!thissop)
return getMaxRadius();
1496 OP_Utils::evalOpParm(result, thissop,
"maxradius", cookparms.
getCookTime(), 0);
1507 bool myUseDensityAttrib;
1509 bool myUseAreaAttrib;
1511 bool myUseAreaForVolumes;
1512 bool myUseDensityTexture;
1516 bool myUseEmergencyLimit;
1517 int64 myEmergencyLimit;
1519 bool myOverridePrimSeed;
1521 bool myRandomizeOrder;
1523 int64 myRelaxIterations;
1524 bool myUseGeometricNormals;
1525 bool myUsePrimNumAttrib;
1527 bool myUsePrimUVWAttrib;
1529 bool myUseOutputDensityAttrib;
1531 bool myUseOutputRadiusAttrib;
1533 bool myUseOutputIdAttrib;
1535 bool myRadiusInTextureSpace;
1542 bool myUseMaxRadius;
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
bool getUseDensityAttrib() const
UT_StringHolder opVertAttribs(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getScaleRadiiBy() const
static void saveData(std::ostream &os, UT_Vector4D v)
const UT_StringHolder & getPrimNumAttrib() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
static void loadData(UT_IStream &is, UT_Matrix4D &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
void setIndepVoxel(bool val)
void setGroup(const UT_StringHolder &val)
bool getUsePrimNumAttrib() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
SOP_Node * getNode() const
bool getForceTotal() const
void setSeed(fpreal64 val)
void setScaleRadiiBy(fpreal64 val)
static void loadData(UT_IStream &is, UT_Vector2D &v)
static void saveData(std::ostream &os, UT_StringHolder s)
void setDetailAttribsAsDetail(const UT_StringHolder &val)
UT_StringHolder opPrimAttribs(const SOP_NodeVerb::CookParms &cookparms) const
void setUseDensityTexture(bool val)
bool getUseOutputIdAttrib() const
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
void setVertAttribs(const UT_StringHolder &val)
void setGenerateBy(GenerateBy val)
void setOutputIdAttrib(const UT_StringHolder &val)
exint bread(int32 *buffer, exint asize=1)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
GT_API const UT_StringHolder time
void loadFromOpSubclass(const LoadParms &loadparms) override
constexpr SYS_FORCE_INLINE T & y() noexcept
bool opUseDensityAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
UT_StringHolder opPrimSeedAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void setDensityScale(fpreal64 val)
static void saveData(std::ostream &os, UT_Matrix3D v)
const UT_StringHolder & getOutputIdAttrib() const
bool opUseOutputRadiusAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void setUseOutputRadiusAttrib(bool val)
const OP_Context & context() const
void setUseOutputDensityAttrib(bool val)
UT_StringHolder opOutputDensityAttrib(const SOP_NodeVerb::CookParms &cookparms) const
int64 getRelaxIterations() const
constexpr SYS_FORCE_INLINE T & z() noexcept
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
SYS_FORCE_INLINE const char * buffer() const
void setPrimUVWAttrib(const UT_StringHolder &val)
void setForceTotal(bool val)
static void loadData(UT_IStream &is, UT_Vector3I &v)
An output stream object that owns its own string buffer storage.
static void loadData(UT_IStream &is, bool &v)
UT_StringHolder opDetailAttribs(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opDensityTexture(const SOP_NodeVerb::CookParms &cookparms) const
void setPrimAttribs(const UT_StringHolder &val)
static void saveData(std::ostream &os, UT_Vector3D v)
const UT_StringHolder & getPrimSeedAttrib() const
**But if you need a result
static void saveData(std::ostream &os, UT_Vector2D v)
bool opRandomizeOrder(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opOutputRadiusAttrib(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.
UT_StringHolder opUVAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void setPointAttribs(const UT_StringHolder &val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
const char * getNestParmName(TempIndex fieldnum) const override
const UT_StringHolder & getVertAttribs() const
void setDensityAttrib(const UT_StringHolder &val)
const UT_StringHolder & getOutputDensityAttrib() const
constexpr SYS_FORCE_INLINE T & x() noexcept
bool opUseMaxRadius(const SOP_NodeVerb::CookParms &cookparms) const
bool opOverridePrimSeed(const SOP_NodeVerb::CookParms &cookparms) const
void setMaxRadius(fpreal64 val)
void setUseAreaForVolumes(bool val)
UT_StringHolder opAreaAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
void setDensityTexture(const UT_StringHolder &val)
void setOutputDensityAttrib(const UT_StringHolder &val)
constexpr SYS_FORCE_INLINE T & x() noexcept
void setUseOutputIdAttrib(bool val)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
void setRelaxPoints(bool val)
ParmType getNestParmType(TempIndex fieldnum) const override
UT_StringHolder opDensityAttrib(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getDetailAttribsAsDetail() const
const UT_StringHolder & getAreaAttrib() const
bool getIndepVoxel() const
SYS_FORCE_INLINE UT_StringHolder getToken(GenerateBy enum_value)
bool opUsePrimNumAttrib(const SOP_NodeVerb::CookParms &cookparms) const
bool getUseAreaForVolumes() const
bool opRadiusInTextureSpace(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opSeed(const SOP_NodeVerb::CookParms &cookparms) const
GenerateBy opGenerateBy(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getCountPerPrimAttrib() const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
SYS_FORCE_INLINE const char * buffer() const
const UT_StringHolder & getDensityTexture() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
void copyFrom(const OP_NodeParms *src) override
constexpr SYS_FORCE_INLINE T & z() noexcept
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
void setRandomizeOrder(bool val)
bool opIndepVoxel(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getDetailAttribs() const
const OP_GraphProxy * graph() const
const UT_StringHolder & getPrimAttribs() const
const UT_StringHolder & getGroup() const
bool getUsePrimUVWAttrib() const
void setAreaAttrib(const UT_StringHolder &val)
const UT_StringHolder & getOutputRadiusAttrib() const
int64 opNpts(const SOP_NodeVerb::CookParms &cookparms) const
bool opUseAreaForVolumes(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
bool operator==(const SOP_Scatter_2_0Parms &src) const
exint getNestNumParms(TempIndex idx) const override
void setUseGeometricNormals(bool val)
bool getRandomizeOrder() const
bool getUseDensityTexture() const
static void saveData(std::ostream &os, int64 v)
bool opUseAreaAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void setCountPerPrimAttrib(const UT_StringHolder &val)
bool getUseOutputRadiusAttrib() const
bool getRelaxPoints() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
static void loadData(UT_IStream &is, UT_Matrix3D &v)
void save(std::ostream &os) const
bool isParmColorRamp(exint idx) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
const UT_StringHolder & getPointAttribs() const
UT_StringHolder opPrimUVWAttrib(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opMaxRadius(const SOP_NodeVerb::CookParms &cookparms) const
GenerateBy getGenerateBy() const
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
const UT_StringHolder & getDensityAttrib() const
bool opForceTotal(const SOP_NodeVerb::CookParms &cookparms) const
bool opUsePrimUVWAttrib(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector2I &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
void saveBinary(std::ostream &os) const
Save string to binary stream.
UT_StringHolder opPrimNumAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
GT_API const UT_StringHolder version
UT_StringHolder opOutputIdAttrib(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, int64 &v)
bool opUseDensityTexture(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
bool getUseGeometricNormals() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
void setUsePrimUVWAttrib(bool val)
bool opRelaxPoints(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Matrix4D v)
static void saveData(std::ostream &os, fpreal64 v)
void setUVAttrib(const UT_StringHolder &val)
bool operator!=(const SOP_Scatter_2_0Parms &src) const
static void loadData(UT_IStream &is, UT_StringHolder &v)
const UT_StringHolder & getPrimUVWAttrib() const
bool opUseOutputDensityAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void setUseMaxRadius(bool val)
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
fpreal64 opScaleRadiiBy(const SOP_NodeVerb::CookParms &cookparms) const
DEP_MicroNode * depnode() const
UT_StringHolder opDetailAttribsAsDetail(const SOP_NodeVerb::CookParms &cookparms) const
LeafData & operator=(const LeafData &)=delete
static void loadData(UT_IStream &is, fpreal64 &v)
Utility class for containing a color ramp.
UT_StringHolder opPointAttribs(const SOP_NodeVerb::CookParms &cookparms) const
bool getUseAreaAttrib() const
void setDetailAttribs(const UT_StringHolder &val)
fpreal64 getDensityScale() const
constexpr SYS_FORCE_INLINE T & w() noexcept
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
void setUseDensityAttrib(bool val)
bool getRadiusInTextureSpace() const
fpreal64 getMaxRadius() const
bool opUseEmergencyLimit(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opCountPerPrimAttrib(const SOP_NodeVerb::CookParms &cookparms) const
bool opUseGeometricNormals(const SOP_NodeVerb::CookParms &cookparms) const
void setRadiusInTextureSpace(bool val)
int64 opEmergencyLimit(const SOP_NodeVerb::CookParms &cookparms) const
fpreal getCookTime() const
bool load(UT_IStream &is)
void setEmergencyLimit(int64 val)
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
const char * findChar(int c) const
bool getUseEmergencyLimit() const
void setOutputRadiusAttrib(const UT_StringHolder &val)
void setPrimNumAttrib(const UT_StringHolder &val)
const UT_StringHolder & getUVAttrib() const
bool getUseMaxRadius() const
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
static void saveData(std::ostream &os, UT_Matrix2D v)
void setRelaxIterations(int64 val)
void setUseAreaAttrib(bool val)
static void saveData(std::ostream &os, bool v)
void setPrimSeedAttrib(const UT_StringHolder &val)
int64 getEmergencyLimit() const
constexpr SYS_FORCE_INLINE T & y() noexcept
int64 opRelaxIterations(const SOP_NodeVerb::CookParms &cookparms) const
bool getUseOutputDensityAttrib() const
static void loadData(UT_IStream &is, UT_Vector4D &v)
void setUsePrimNumAttrib(bool val)
void setOverridePrimSeed(bool val)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
void setUseEmergencyLimit(bool val)
constexpr SYS_FORCE_INLINE T & y() noexcept
SYS_FORCE_INLINE bool isstring() const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
static void loadData(UT_IStream &is, UT_Vector3D &v)
bool opUseOutputIdAttrib(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector4I &v)
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
bool getOverridePrimSeed() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
constexpr SYS_FORCE_INLINE T & x() noexcept
fpreal64 opDensityScale(const SOP_NodeVerb::CookParms &cookparms) const