23 namespace SOP_Scatter_2_0Enums
47 myUseDensityAttrib =
false;
48 myDensityAttrib =
"density"_UTsh;
49 myUseAreaAttrib =
false;
50 myAreaAttrib =
"area"_UTsh;
51 myUseAreaForVolumes =
false;
52 myUseDensityTexture =
false;
53 myDensityTexture =
"default.pic"_UTsh;
54 myUVAttrib =
"uv"_UTsh;
55 myCountPerPrimAttrib =
"count"_UTsh;
56 myUseEmergencyLimit =
true;
57 myEmergencyLimit = 1e+06;
59 myOverridePrimSeed =
false;
60 myPrimSeedAttrib =
"primid"_UTsh;
61 myRandomizeOrder =
true;
63 myRelaxIterations = 10;
64 myUseGeometricNormals =
false;
65 myUsePrimNumAttrib =
false;
66 myPrimNumAttrib =
"sourceprim"_UTsh;
67 myUsePrimUVWAttrib =
false;
68 myPrimUVWAttrib =
"sourceprimuv"_UTsh;
69 myUseOutputDensityAttrib =
false;
70 myOutputDensityAttrib =
"density"_UTsh;
71 myUseOutputRadiusAttrib =
false;
72 myOutputRadiusAttrib =
"pscale"_UTsh;
73 myUseOutputIdAttrib =
false;
74 myOutputIdAttrib =
"id"_UTsh;
75 myRadiusInTextureSpace =
false;
76 myPointAttribs =
"*"_UTsh;
77 myVertAttribs =
"N uv*"_UTsh;
78 myPrimAttribs =
""_UTsh;
79 myDetailAttribs =
""_UTsh;
80 myDetailAttribsAsDetail =
""_UTsh;
82 myUseMaxRadius =
true;
96 if (myGroup != src.myGroup)
return false;
97 if (myGenerateBy != src.myGenerateBy)
return false;
98 if (myIndepVoxel != src.myIndepVoxel)
return false;
99 if (myForceTotal != src.myForceTotal)
return false;
100 if (myNpts != src.myNpts)
return false;
101 if (myDensityScale != src.myDensityScale)
return false;
102 if (myUseDensityAttrib != src.myUseDensityAttrib)
return false;
103 if (myDensityAttrib != src.myDensityAttrib)
return false;
104 if (myUseAreaAttrib != src.myUseAreaAttrib)
return false;
105 if (myAreaAttrib != src.myAreaAttrib)
return false;
106 if (myUseAreaForVolumes != src.myUseAreaForVolumes)
return false;
107 if (myUseDensityTexture != src.myUseDensityTexture)
return false;
108 if (myDensityTexture != src.myDensityTexture)
return false;
109 if (myUVAttrib != src.myUVAttrib)
return false;
110 if (myCountPerPrimAttrib != src.myCountPerPrimAttrib)
return false;
111 if (myUseEmergencyLimit != src.myUseEmergencyLimit)
return false;
112 if (myEmergencyLimit != src.myEmergencyLimit)
return false;
113 if (mySeed != src.mySeed)
return false;
114 if (myOverridePrimSeed != src.myOverridePrimSeed)
return false;
115 if (myPrimSeedAttrib != src.myPrimSeedAttrib)
return false;
116 if (myRandomizeOrder != src.myRandomizeOrder)
return false;
117 if (myRelaxPoints != src.myRelaxPoints)
return false;
118 if (myRelaxIterations != src.myRelaxIterations)
return false;
119 if (myUseGeometricNormals != src.myUseGeometricNormals)
return false;
120 if (myUsePrimNumAttrib != src.myUsePrimNumAttrib)
return false;
121 if (myPrimNumAttrib != src.myPrimNumAttrib)
return false;
122 if (myUsePrimUVWAttrib != src.myUsePrimUVWAttrib)
return false;
123 if (myPrimUVWAttrib != src.myPrimUVWAttrib)
return false;
124 if (myUseOutputDensityAttrib != src.myUseOutputDensityAttrib)
return false;
125 if (myOutputDensityAttrib != src.myOutputDensityAttrib)
return false;
126 if (myUseOutputRadiusAttrib != src.myUseOutputRadiusAttrib)
return false;
127 if (myOutputRadiusAttrib != src.myOutputRadiusAttrib)
return false;
128 if (myUseOutputIdAttrib != src.myUseOutputIdAttrib)
return false;
129 if (myOutputIdAttrib != src.myOutputIdAttrib)
return false;
130 if (myRadiusInTextureSpace != src.myRadiusInTextureSpace)
return false;
131 if (myPointAttribs != src.myPointAttribs)
return false;
132 if (myVertAttribs != src.myVertAttribs)
return false;
133 if (myPrimAttribs != src.myPrimAttribs)
return false;
134 if (myDetailAttribs != src.myDetailAttribs)
return false;
135 if (myDetailAttribsAsDetail != src.myDetailAttribsAsDetail)
return false;
136 if (myScaleRadiiBy != src.myScaleRadiiBy)
return false;
137 if (myUseMaxRadius != src.myUseMaxRadius)
return false;
138 if (myMaxRadius != src.myMaxRadius)
return false;
154 graph->
evalOpParm(myGroup, nodeidx,
"group", time, 0);
157 graph->
evalOpParm(myGenerateBy, nodeidx,
"generateby", time, 0);
158 myIndepVoxel =
false;
159 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=0)))) ) )
160 graph->
evalOpParm(myIndepVoxel, nodeidx,
"indepvoxel", time, 0);
162 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=0))||((getIndepVoxel()==1)))) ) )
163 graph->
evalOpParm(myForceTotal, nodeidx,
"forcetotal", time, 0);
165 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=0))||((getForceTotal()==0))||((getIndepVoxel()==1)))) ) )
166 graph->
evalOpParm(myNpts, nodeidx,
"npts", time, 0);
168 if (
true && ( (
true&&!(((
int64(getGenerateBy())==1))||((
int64(getGenerateBy())==0)&&(getForceTotal()==1)&&(getIndepVoxel()==0)))) ) )
169 graph->
evalOpParm(myDensityScale, nodeidx,
"densityscale", time, 0);
170 myUseDensityAttrib =
false;
171 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=0)))) ) )
172 graph->
evalOpParm(myUseDensityAttrib, nodeidx,
"usedensityattrib", time, 0);
173 myDensityAttrib =
"density"_UTsh;
174 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=0))||((getUseDensityAttrib()==0)))) ) )
175 graph->
evalOpParm(myDensityAttrib, nodeidx,
"densityattrib", time, 0);
176 myUseAreaAttrib =
false;
177 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=0)))) ) )
178 graph->
evalOpParm(myUseAreaAttrib, nodeidx,
"useareaattrib", time, 0);
179 myAreaAttrib =
"area"_UTsh;
180 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=0))||((getUseAreaAttrib()==0)))) ) )
181 graph->
evalOpParm(myAreaAttrib, nodeidx,
"areaattrib", time, 0);
182 myUseAreaForVolumes =
false;
183 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=0))||((getForceTotal()==1)&&(getIndepVoxel()==0)))) ) )
184 graph->
evalOpParm(myUseAreaForVolumes, nodeidx,
"useareaforvolumes", time, 0);
185 myUseDensityTexture =
false;
186 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=2)))) ) )
187 graph->
evalOpParm(myUseDensityTexture, nodeidx,
"usedensitytexture", time, 0);
188 myDensityTexture =
"default.pic"_UTsh;
189 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=2))||((getUseDensityTexture()==0)))) ) )
190 graph->
evalOpParm(myDensityTexture, nodeidx,
"densitytexture", time, 0);
191 myUVAttrib =
"uv"_UTsh;
192 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=2)))) ) )
193 graph->
evalOpParm(myUVAttrib, nodeidx,
"uvattrib", time, 0);
194 myCountPerPrimAttrib =
"count"_UTsh;
195 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=1)))) ) )
196 graph->
evalOpParm(myCountPerPrimAttrib, nodeidx,
"primcountattrib", time, 0);
197 myUseEmergencyLimit =
true;
199 graph->
evalOpParm(myUseEmergencyLimit, nodeidx,
"useemergencylimit", time, 0);
200 myEmergencyLimit = 1e+06;
201 if (
true && ( (
true&&!(((getUseEmergencyLimit()==0)))) ) )
202 graph->
evalOpParm(myEmergencyLimit, nodeidx,
"emergencylimit", time, 0);
205 graph->
evalOpParm(mySeed, nodeidx,
"seed", time, 0);
206 myOverridePrimSeed =
false;
207 if (
true && ( (
true&&!(((
int64(getGenerateBy())==2)))) ) )
208 graph->
evalOpParm(myOverridePrimSeed, nodeidx,
"overrideprimseed", time, 0);
209 myPrimSeedAttrib =
"primid"_UTsh;
210 if (
true && ( (
true&&!(((
int64(getGenerateBy())==2))||((getOverridePrimSeed()==0)))) ) )
211 graph->
evalOpParm(myPrimSeedAttrib, nodeidx,
"primseedattrib", time, 0);
212 myRandomizeOrder =
true;
214 graph->
evalOpParm(myRandomizeOrder, nodeidx,
"randomizeorder", time, 0);
215 myRelaxPoints =
true;
217 graph->
evalOpParm(myRelaxPoints, nodeidx,
"relaxpoints", time, 0);
218 myRelaxIterations = 10;
219 if (
true && ( (
true&&!(((getRelaxPoints()==0)))) ) )
220 graph->
evalOpParm(myRelaxIterations, nodeidx,
"relaxiterations", time, 0);
221 myUseGeometricNormals =
false;
222 if (
true && ( (
true&&!(((getRelaxPoints()==0)))) ) )
223 graph->
evalOpParm(myUseGeometricNormals, nodeidx,
"usegeometricnormals", time, 0);
224 myUsePrimNumAttrib =
false;
226 graph->
evalOpParm(myUsePrimNumAttrib, nodeidx,
"useprimnumattrib", time, 0);
227 myPrimNumAttrib =
"sourceprim"_UTsh;
228 if (
true && ( (
true&&!(((getUsePrimNumAttrib()==0)))) ) )
229 graph->
evalOpParm(myPrimNumAttrib, nodeidx,
"primnumattrib", time, 0);
230 myUsePrimUVWAttrib =
false;
232 graph->
evalOpParm(myUsePrimUVWAttrib, nodeidx,
"useprimuvwattrib", time, 0);
233 myPrimUVWAttrib =
"sourceprimuv"_UTsh;
234 if (
true && ( (
true&&!(((getUsePrimUVWAttrib()==0)))) ) )
235 graph->
evalOpParm(myPrimUVWAttrib, nodeidx,
"primuvwattrib", time, 0);
236 myUseOutputDensityAttrib =
false;
238 graph->
evalOpParm(myUseOutputDensityAttrib, nodeidx,
"useoutputdensityattrib", time, 0);
239 myOutputDensityAttrib =
"density"_UTsh;
240 if (
true && ( (
true&&!(((getUseOutputDensityAttrib()==0)))) ) )
241 graph->
evalOpParm(myOutputDensityAttrib, nodeidx,
"outputdensityattrib", time, 0);
242 myUseOutputRadiusAttrib =
false;
244 graph->
evalOpParm(myUseOutputRadiusAttrib, nodeidx,
"useoutputradiusattrib", time, 0);
245 myOutputRadiusAttrib =
"pscale"_UTsh;
246 if (
true && ( (
true&&!(((getUseOutputRadiusAttrib()==0)))) ) )
247 graph->
evalOpParm(myOutputRadiusAttrib, nodeidx,
"outputradiusattrib", time, 0);
248 myUseOutputIdAttrib =
false;
250 graph->
evalOpParm(myUseOutputIdAttrib, nodeidx,
"useoutputidattrib", time, 0);
251 myOutputIdAttrib =
"id"_UTsh;
252 if (
true && ( (
true&&!(((getUseOutputIdAttrib()==0)))) ) )
253 graph->
evalOpParm(myOutputIdAttrib, nodeidx,
"outputidattrib", time, 0);
254 myRadiusInTextureSpace =
false;
255 if (
true && ( (
true&&!(((
int64(getGenerateBy())!=2))||((getUseOutputRadiusAttrib()==0)&&(getUseOutputDensityAttrib()==0)))) ) )
256 graph->
evalOpParm(myRadiusInTextureSpace, nodeidx,
"radiusintexturespace", time, 0);
257 myPointAttribs =
"*"_UTsh;
259 graph->
evalOpParm(myPointAttribs, nodeidx,
"pointattribs", time, 0);
260 myVertAttribs =
"N uv*"_UTsh;
262 graph->
evalOpParm(myVertAttribs, nodeidx,
"vertattribs", time, 0);
263 myPrimAttribs =
""_UTsh;
265 graph->
evalOpParm(myPrimAttribs, nodeidx,
"primattribs", time, 0);
266 myDetailAttribs =
""_UTsh;
268 graph->
evalOpParm(myDetailAttribs, nodeidx,
"detailattribs", time, 0);
269 myDetailAttribsAsDetail =
""_UTsh;
271 graph->
evalOpParm(myDetailAttribsAsDetail, nodeidx,
"detailattribsasdetail", time, 0);
273 if (
true && ( (
true&&!(((getRelaxPoints()==0)&&(getUseOutputRadiusAttrib()==0)))) ) )
274 graph->
evalOpParm(myScaleRadiiBy, nodeidx,
"scaleradiiby", time, 0);
275 myUseMaxRadius =
true;
276 if (
true && ( (
true&&!(((getRelaxPoints()==0)&&(getUseOutputRadiusAttrib()==0)))) ) )
277 graph->
evalOpParm(myUseMaxRadius, nodeidx,
"usemaxradius", time, 0);
279 if (
true && ( (
true&&!(((getRelaxPoints()==0)&&(getUseOutputRadiusAttrib()==0))||((getUseMaxRadius()==0)))) ) )
280 graph->
evalOpParm(myMaxRadius, nodeidx,
"maxradius", time, 0);
296 template <
typename T>
303 if (idx.
size() != instance.
size()+1)
450 { doGetParmValue(idx, instance, value); }
452 { doGetParmValue(idx, instance, value); }
454 { doGetParmValue(idx, instance, value); }
456 { doGetParmValue(idx, instance, value); }
458 { doGetParmValue(idx, instance, value); }
460 { doGetParmValue(idx, instance, value); }
462 { doGetParmValue(idx, instance, value); }
464 { doGetParmValue(idx, instance, value); }
466 { doGetParmValue(idx, instance, value); }
468 { doGetParmValue(idx, instance, value); }
470 { doGetParmValue(idx, instance, value); }
472 template <
typename T>
479 if (idx.
size() != instance.
size()+1)
568 coerceValue(myUseOutputDensityAttrib, ( ( value ) ));
574 coerceValue(myUseOutputRadiusAttrib, ( ( value ) ));
586 coerceValue(myRadiusInTextureSpace, ( ( value ) ));
601 coerceValue(myDetailAttribsAsDetail, ( ( value ) ));
617 { doSetParmValue(idx, instance, value); }
619 { doSetParmValue(idx, instance, value); }
621 { doSetParmValue(idx, instance, value); }
623 { doSetParmValue(idx, instance, value); }
625 { doSetParmValue(idx, instance, value); }
627 { doSetParmValue(idx, instance, value); }
629 { doSetParmValue(idx, instance, value); }
631 { doSetParmValue(idx, instance, value); }
633 { doSetParmValue(idx, instance, value); }
635 { doSetParmValue(idx, instance, value); }
637 { doSetParmValue(idx, instance, value); }
653 if (fieldnum.
size() < 1)
668 return "densityscale";
670 return "usedensityattrib";
672 return "densityattrib";
674 return "useareaattrib";
678 return "useareaforvolumes";
680 return "usedensitytexture";
682 return "densitytexture";
686 return "primcountattrib";
688 return "useemergencylimit";
690 return "emergencylimit";
694 return "overrideprimseed";
696 return "primseedattrib";
698 return "randomizeorder";
700 return "relaxpoints";
702 return "relaxiterations";
704 return "usegeometricnormals";
706 return "useprimnumattrib";
708 return "primnumattrib";
710 return "useprimuvwattrib";
712 return "primuvwattrib";
714 return "useoutputdensityattrib";
716 return "outputdensityattrib";
718 return "useoutputradiusattrib";
720 return "outputradiusattrib";
722 return "useoutputidattrib";
724 return "outputidattrib";
726 return "radiusintexturespace";
728 return "pointattribs";
730 return "vertattribs";
732 return "primattribs";
734 return "detailattribs";
736 return "detailattribsasdetail";
738 return "scaleradiiby";
740 return "usemaxradius";
750 if (fieldnum.
size() < 1)
751 return PARM_UNSUPPORTED;
861 {
for (
int r = 0;
r < 2;
r++)
for (
int c = 0; c < 2; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
863 {
for (
int r = 0;
r < 3;
r++)
for (
int c = 0; c < 3; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
865 {
for (
int r = 0;
r < 4;
r++)
for (
int c = 0; c < 4; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
878 loadData(is, rampdata);
896 int typelen = colon - data.
buffer();
910 {
int64 iv =
v; UTwrite(os, &iv); }
912 { UTwrite<fpreal64>(os, &
v); }
914 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
916 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
917 UTwrite<fpreal64>(os, &v.
z()); }
919 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
920 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
932 if (s) s->save(ostr);
934 saveData(os, result);
941 ostr << s->getDataTypeToken();
946 saveData(os, result);
950 void save(std::ostream &os)
const
954 saveData(os, myGroup);
955 saveData(os, myGenerateBy);
956 saveData(os, myIndepVoxel);
957 saveData(os, myForceTotal);
958 saveData(os, myNpts);
959 saveData(os, myDensityScale);
960 saveData(os, myUseDensityAttrib);
961 saveData(os, myDensityAttrib);
962 saveData(os, myUseAreaAttrib);
963 saveData(os, myAreaAttrib);
964 saveData(os, myUseAreaForVolumes);
965 saveData(os, myUseDensityTexture);
966 saveData(os, myDensityTexture);
967 saveData(os, myUVAttrib);
968 saveData(os, myCountPerPrimAttrib);
969 saveData(os, myUseEmergencyLimit);
970 saveData(os, myEmergencyLimit);
971 saveData(os, mySeed);
972 saveData(os, myOverridePrimSeed);
973 saveData(os, myPrimSeedAttrib);
974 saveData(os, myRandomizeOrder);
975 saveData(os, myRelaxPoints);
976 saveData(os, myRelaxIterations);
977 saveData(os, myUseGeometricNormals);
978 saveData(os, myUsePrimNumAttrib);
979 saveData(os, myPrimNumAttrib);
980 saveData(os, myUsePrimUVWAttrib);
981 saveData(os, myPrimUVWAttrib);
982 saveData(os, myUseOutputDensityAttrib);
983 saveData(os, myOutputDensityAttrib);
984 saveData(os, myUseOutputRadiusAttrib);
985 saveData(os, myOutputRadiusAttrib);
986 saveData(os, myUseOutputIdAttrib);
987 saveData(os, myOutputIdAttrib);
988 saveData(os, myRadiusInTextureSpace);
989 saveData(os, myPointAttribs);
990 saveData(os, myVertAttribs);
991 saveData(os, myPrimAttribs);
992 saveData(os, myDetailAttribs);
993 saveData(os, myDetailAttribsAsDetail);
994 saveData(os, myScaleRadiiBy);
995 saveData(os, myUseMaxRadius);
996 saveData(os, myMaxRadius);
1009 loadData(is, myGroup);
1010 loadData(is, myGenerateBy);
1011 loadData(is, myIndepVoxel);
1012 loadData(is, myForceTotal);
1013 loadData(is, myNpts);
1014 loadData(is, myDensityScale);
1015 loadData(is, myUseDensityAttrib);
1016 loadData(is, myDensityAttrib);
1017 loadData(is, myUseAreaAttrib);
1018 loadData(is, myAreaAttrib);
1019 loadData(is, myUseAreaForVolumes);
1020 loadData(is, myUseDensityTexture);
1021 loadData(is, myDensityTexture);
1022 loadData(is, myUVAttrib);
1023 loadData(is, myCountPerPrimAttrib);
1024 loadData(is, myUseEmergencyLimit);
1025 loadData(is, myEmergencyLimit);
1026 loadData(is, mySeed);
1027 loadData(is, myOverridePrimSeed);
1028 loadData(is, myPrimSeedAttrib);
1029 loadData(is, myRandomizeOrder);
1030 loadData(is, myRelaxPoints);
1031 loadData(is, myRelaxIterations);
1032 loadData(is, myUseGeometricNormals);
1033 loadData(is, myUsePrimNumAttrib);
1034 loadData(is, myPrimNumAttrib);
1035 loadData(is, myUsePrimUVWAttrib);
1036 loadData(is, myPrimUVWAttrib);
1037 loadData(is, myUseOutputDensityAttrib);
1038 loadData(is, myOutputDensityAttrib);
1039 loadData(is, myUseOutputRadiusAttrib);
1040 loadData(is, myOutputRadiusAttrib);
1041 loadData(is, myUseOutputIdAttrib);
1042 loadData(is, myOutputIdAttrib);
1043 loadData(is, myRadiusInTextureSpace);
1044 loadData(is, myPointAttribs);
1045 loadData(is, myVertAttribs);
1046 loadData(is, myPrimAttribs);
1047 loadData(is, myDetailAttribs);
1048 loadData(is, myDetailAttribsAsDetail);
1049 loadData(is, myScaleRadiiBy);
1050 loadData(is, myUseMaxRadius);
1051 loadData(is, myMaxRadius);
1061 if (!thissop)
return getGroup();
1063 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
1071 if (!thissop)
return getGenerateBy();
1073 OP_Utils::evalOpParm(result, thissop,
"generateby", cookparms.
getCookTime(), 0);
1081 if (!thissop)
return getIndepVoxel();
1083 OP_Utils::evalOpParm(result, thissop,
"indepvoxel", cookparms.
getCookTime(), 0);
1091 if (!thissop)
return getForceTotal();
1093 OP_Utils::evalOpParm(result, thissop,
"forcetotal", cookparms.
getCookTime(), 0);
1101 if (!thissop)
return getNpts();
1103 OP_Utils::evalOpParm(result, thissop,
"npts", cookparms.
getCookTime(), 0);
1111 if (!thissop)
return getDensityScale();
1113 OP_Utils::evalOpParm(result, thissop,
"densityscale", cookparms.
getCookTime(), 0);
1121 if (!thissop)
return getUseDensityAttrib();
1123 OP_Utils::evalOpParm(result, thissop,
"usedensityattrib", cookparms.
getCookTime(), 0);
1131 if (!thissop)
return getDensityAttrib();
1133 OP_Utils::evalOpParm(result, thissop,
"densityattrib", cookparms.
getCookTime(), 0);
1141 if (!thissop)
return getUseAreaAttrib();
1143 OP_Utils::evalOpParm(result, thissop,
"useareaattrib", cookparms.
getCookTime(), 0);
1151 if (!thissop)
return getAreaAttrib();
1153 OP_Utils::evalOpParm(result, thissop,
"areaattrib", cookparms.
getCookTime(), 0);
1161 if (!thissop)
return getUseAreaForVolumes();
1163 OP_Utils::evalOpParm(result, thissop,
"useareaforvolumes", cookparms.
getCookTime(), 0);
1171 if (!thissop)
return getUseDensityTexture();
1173 OP_Utils::evalOpParm(result, thissop,
"usedensitytexture", cookparms.
getCookTime(), 0);
1181 if (!thissop)
return getDensityTexture();
1183 OP_Utils::evalOpParm(result, thissop,
"densitytexture", cookparms.
getCookTime(), 0);
1191 if (!thissop)
return getUVAttrib();
1193 OP_Utils::evalOpParm(result, thissop,
"uvattrib", cookparms.
getCookTime(), 0);
1201 if (!thissop)
return getCountPerPrimAttrib();
1203 OP_Utils::evalOpParm(result, thissop,
"primcountattrib", cookparms.
getCookTime(), 0);
1211 if (!thissop)
return getUseEmergencyLimit();
1213 OP_Utils::evalOpParm(result, thissop,
"useemergencylimit", cookparms.
getCookTime(), 0);
1221 if (!thissop)
return getEmergencyLimit();
1223 OP_Utils::evalOpParm(result, thissop,
"emergencylimit", cookparms.
getCookTime(), 0);
1231 if (!thissop)
return getSeed();
1233 OP_Utils::evalOpParm(result, thissop,
"seed", cookparms.
getCookTime(), 0);
1241 if (!thissop)
return getOverridePrimSeed();
1243 OP_Utils::evalOpParm(result, thissop,
"overrideprimseed", cookparms.
getCookTime(), 0);
1251 if (!thissop)
return getPrimSeedAttrib();
1253 OP_Utils::evalOpParm(result, thissop,
"primseedattrib", cookparms.
getCookTime(), 0);
1261 if (!thissop)
return getRandomizeOrder();
1263 OP_Utils::evalOpParm(result, thissop,
"randomizeorder", cookparms.
getCookTime(), 0);
1271 if (!thissop)
return getRelaxPoints();
1273 OP_Utils::evalOpParm(result, thissop,
"relaxpoints", cookparms.
getCookTime(), 0);
1281 if (!thissop)
return getRelaxIterations();
1283 OP_Utils::evalOpParm(result, thissop,
"relaxiterations", cookparms.
getCookTime(), 0);
1291 if (!thissop)
return getUseGeometricNormals();
1293 OP_Utils::evalOpParm(result, thissop,
"usegeometricnormals", cookparms.
getCookTime(), 0);
1301 if (!thissop)
return getUsePrimNumAttrib();
1303 OP_Utils::evalOpParm(result, thissop,
"useprimnumattrib", cookparms.
getCookTime(), 0);
1311 if (!thissop)
return getPrimNumAttrib();
1313 OP_Utils::evalOpParm(result, thissop,
"primnumattrib", cookparms.
getCookTime(), 0);
1321 if (!thissop)
return getUsePrimUVWAttrib();
1323 OP_Utils::evalOpParm(result, thissop,
"useprimuvwattrib", cookparms.
getCookTime(), 0);
1331 if (!thissop)
return getPrimUVWAttrib();
1333 OP_Utils::evalOpParm(result, thissop,
"primuvwattrib", cookparms.
getCookTime(), 0);
1341 if (!thissop)
return getUseOutputDensityAttrib();
1343 OP_Utils::evalOpParm(result, thissop,
"useoutputdensityattrib", cookparms.
getCookTime(), 0);
1351 if (!thissop)
return getOutputDensityAttrib();
1353 OP_Utils::evalOpParm(result, thissop,
"outputdensityattrib", cookparms.
getCookTime(), 0);
1361 if (!thissop)
return getUseOutputRadiusAttrib();
1363 OP_Utils::evalOpParm(result, thissop,
"useoutputradiusattrib", cookparms.
getCookTime(), 0);
1371 if (!thissop)
return getOutputRadiusAttrib();
1373 OP_Utils::evalOpParm(result, thissop,
"outputradiusattrib", cookparms.
getCookTime(), 0);
1381 if (!thissop)
return getUseOutputIdAttrib();
1383 OP_Utils::evalOpParm(result, thissop,
"useoutputidattrib", cookparms.
getCookTime(), 0);
1391 if (!thissop)
return getOutputIdAttrib();
1393 OP_Utils::evalOpParm(result, thissop,
"outputidattrib", cookparms.
getCookTime(), 0);
1401 if (!thissop)
return getRadiusInTextureSpace();
1403 OP_Utils::evalOpParm(result, thissop,
"radiusintexturespace", cookparms.
getCookTime(), 0);
1411 if (!thissop)
return getPointAttribs();
1413 OP_Utils::evalOpParm(result, thissop,
"pointattribs", cookparms.
getCookTime(), 0);
1421 if (!thissop)
return getVertAttribs();
1423 OP_Utils::evalOpParm(result, thissop,
"vertattribs", cookparms.
getCookTime(), 0);
1431 if (!thissop)
return getPrimAttribs();
1433 OP_Utils::evalOpParm(result, thissop,
"primattribs", cookparms.
getCookTime(), 0);
1441 if (!thissop)
return getDetailAttribs();
1443 OP_Utils::evalOpParm(result, thissop,
"detailattribs", cookparms.
getCookTime(), 0);
1451 if (!thissop)
return getDetailAttribsAsDetail();
1453 OP_Utils::evalOpParm(result, thissop,
"detailattribsasdetail", cookparms.
getCookTime(), 0);
1461 if (!thissop)
return getScaleRadiiBy();
1463 OP_Utils::evalOpParm(result, thissop,
"scaleradiiby", cookparms.
getCookTime(), 0);
1471 if (!thissop)
return getUseMaxRadius();
1473 OP_Utils::evalOpParm(result, thissop,
"usemaxradius", cookparms.
getCookTime(), 0);
1481 if (!thissop)
return getMaxRadius();
1483 OP_Utils::evalOpParm(result, thissop,
"maxradius", cookparms.
getCookTime(), 0);
1494 bool myUseDensityAttrib;
1496 bool myUseAreaAttrib;
1498 bool myUseAreaForVolumes;
1499 bool myUseDensityTexture;
1503 bool myUseEmergencyLimit;
1504 int64 myEmergencyLimit;
1506 bool myOverridePrimSeed;
1508 bool myRandomizeOrder;
1510 int64 myRelaxIterations;
1511 bool myUseGeometricNormals;
1512 bool myUsePrimNumAttrib;
1514 bool myUsePrimUVWAttrib;
1516 bool myUseOutputDensityAttrib;
1518 bool myUseOutputRadiusAttrib;
1520 bool myUseOutputIdAttrib;
1522 bool myRadiusInTextureSpace;
1529 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
T clampMaxValue(fpreal maxvalue, const T &src) 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)
T clampMinValue(fpreal minvalue, const T &src) const
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
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
void coerceValue(T &result, const S &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
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)
OP_NodeParms & operator=(const OP_NodeParms &)=default
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