23 namespace SOP_GroupCreateEnums
57 myGroupName =
"group1"_UTsh;
61 myBasegroup =
""_UTsh;
64 myGroupBounding =
false;
68 myIncludenotwhollycontained =
false;
70 myInvertvolume =
false;
71 myGroupNormal =
false;
72 myCamerapath =
""_UTsh;
74 myNonplanartol = 0.001;
77 myOppositenormals =
false;
79 myDominedgeangle =
false;
81 myDomaxedgeangle =
false;
83 myEdgeAngleBetweenEdges =
false;
84 myDominedgelen =
false;
86 myDomaxedgelen =
false;
90 myEdgeptgrp =
"0"_UTsh;
92 myBoundaryGroups =
false;
93 myGroupRandom =
false;
95 myUseseedattrib =
false;
96 mySeedattrib =
"id"_UTsh;
110 if (myGroupName != src.myGroupName)
return false;
111 if (myGrouptype != src.myGrouptype)
return false;
112 if (myMergeop != src.myMergeop)
return false;
113 if (myGroupBase != src.myGroupBase)
return false;
114 if (myBasegroup != src.myBasegroup)
return false;
115 if (myOrdered != src.myOrdered)
return false;
116 if (myGeotype != src.myGeotype)
return false;
117 if (myGroupBounding != src.myGroupBounding)
return false;
118 if (myBoundtype != src.myBoundtype)
return false;
119 if (mySize != src.mySize)
return false;
120 if (myT != src.myT)
return false;
121 if (myIncludenotwhollycontained != src.myIncludenotwhollycontained)
return false;
122 if (myIso != src.myIso)
return false;
123 if (myInvertvolume != src.myInvertvolume)
return false;
124 if (myGroupNormal != src.myGroupNormal)
return false;
125 if (myCamerapath != src.myCamerapath)
return false;
126 if (myNonplanar != src.myNonplanar)
return false;
127 if (myNonplanartol != src.myNonplanartol)
return false;
128 if (myDir != src.myDir)
return false;
129 if (myAngle != src.myAngle)
return false;
130 if (myOppositenormals != src.myOppositenormals)
return false;
131 if (myGroupEdges != src.myGroupEdges)
return false;
132 if (myDominedgeangle != src.myDominedgeangle)
return false;
133 if (myMinedgeangle != src.myMinedgeangle)
return false;
134 if (myDomaxedgeangle != src.myDomaxedgeangle)
return false;
135 if (myMaxedgeangle != src.myMaxedgeangle)
return false;
136 if (myEdgeAngleBetweenEdges != src.myEdgeAngleBetweenEdges)
return false;
137 if (myDominedgelen != src.myDominedgelen)
return false;
138 if (myMinedgelen != src.myMinedgelen)
return false;
139 if (myDomaxedgelen != src.myDomaxedgelen)
return false;
140 if (myMaxedgelen != src.myMaxedgelen)
return false;
141 if (myDodepth != src.myDodepth)
return false;
142 if (myEdgestep != src.myEdgestep)
return false;
143 if (myEdgeptgrp != src.myEdgeptgrp)
return false;
144 if (myUnshared != src.myUnshared)
return false;
145 if (myBoundaryGroups != src.myBoundaryGroups)
return false;
146 if (myGroupRandom != src.myGroupRandom)
return false;
147 if (myGlobalseed != src.myGlobalseed)
return false;
148 if (myUseseedattrib != src.myUseseedattrib)
return false;
149 if (mySeedattrib != src.mySeedattrib)
return false;
150 if (myPercent != src.myPercent)
return false;
166 myGroupName =
"group1"_UTsh;
168 graph->
evalOpParm(myGroupName, nodeidx,
"groupname", time, 0);
171 graph->
evalOpParm(myGrouptype, nodeidx,
"grouptype", time, 0);
174 graph->
evalOpParm(myMergeop, nodeidx,
"mergeop", time, 0);
177 graph->
evalOpParm(myGroupBase, nodeidx,
"groupbase", time, 0);
178 myBasegroup =
""_UTsh;
179 if (
true && ( (
true&&!(((getGroupBase()==0)))) ) )
180 graph->
evalOpParm(myBasegroup, nodeidx,
"basegroup", time, 0);
182 if (
true && ( (
true&&!(((getGroupBase()==0)))) ) )
183 graph->
evalOpParm(myOrdered, nodeidx,
"ordered", time, 0);
185 if (
true && ( (
true&&!(((getGroupBase()==0)))) ) )
186 graph->
evalOpParm(myGeotype, nodeidx,
"geotype", time, 0);
187 myGroupBounding =
false;
189 graph->
evalOpParm(myGroupBounding, nodeidx,
"groupbounding", time, 0);
191 if (
true && ( (
true&&!(((getGroupBounding()==0)))) ) )
192 graph->
evalOpParm(myBoundtype, nodeidx,
"boundtype", time, 0);
194 if (
true && ( (
true&&!(((getGroupBounding()==0))||((
int64(getBoundtype())!=0)&&(
int64(getBoundtype())!=1)))) ) )
195 graph->
evalOpParm(mySize, nodeidx,
"size", time, 0);
197 if (
true && ( (
true&&!(((getGroupBounding()==0))||((
int64(getBoundtype())!=0)&&(
int64(getBoundtype())!=1)))) ) )
198 graph->
evalOpParm(myT, nodeidx,
"t", time, 0);
199 myIncludenotwhollycontained =
false;
200 if (
true && ( (
true&&!(((getGroupBounding()==0))||((
int64(getBoundtype())!=0)&&(
int64(getBoundtype())!=1)&&(
int64(getBoundtype())!=4)))) ) )
201 graph->
evalOpParm(myIncludenotwhollycontained, nodeidx,
"includenotwhollycontained", time, 0);
203 if (
true && ( (
true&&!(((getGroupBounding()==0))||((
int64(getBoundtype())!=3)&&(
int64(getBoundtype())!=4)))) ) )
204 graph->
evalOpParm(myIso, nodeidx,
"iso", time, 0);
205 myInvertvolume =
false;
206 if (
true && ( (
true&&!(((getGroupBounding()==0))||((
int64(getBoundtype())!=3)&&(
int64(getBoundtype())!=4)))) ) )
207 graph->
evalOpParm(myInvertvolume, nodeidx,
"invertvolume", time, 0);
208 myGroupNormal =
false;
209 if (
true && ( (
true&&!(((
int64(getGrouptype())==3)))) ) )
210 graph->
evalOpParm(myGroupNormal, nodeidx,
"groupnormal", time, 0);
211 myCamerapath =
""_UTsh;
212 if (
true && ( (
true&&!(((
int64(getGrouptype())==3))||((getGroupNormal()==0))||((
int64(getGrouptype())==3)))) ) )
213 graph->
evalOpParm(myCamerapath, nodeidx,
"camerapath", time, 0);
215 if (
true && ( (
true&&!(((
int64(getGrouptype())!=0))||((
int64(getGrouptype())==3))||((getGroupNormal()==0))||((
int64(getGrouptype())==3)))) ) )
216 graph->
evalOpParm(myNonplanar, nodeidx,
"nonplanar", time, 0);
217 myNonplanartol = 0.001;
218 if (
true && ( (
true&&!(((
int64(getGrouptype())!=0))||((getNonplanar()==0))||((
int64(getGrouptype())==3))||((getGroupNormal()==0))||((
int64(getGrouptype())==3)))) ) )
219 graph->
evalOpParm(myNonplanartol, nodeidx,
"nonplanartol", time, 0);
221 if (
true && ( (
true&&!(((
int64(getGrouptype())==0)&&(getNonplanar()==1))||((getCamerapath()!=
""))||((
int64(getGrouptype())==3))||((getGroupNormal()==0))||((
int64(getGrouptype())==3)))) ) )
222 graph->
evalOpParm(myDir, nodeidx,
"dir", time, 0);
224 if (
true && ( (
true&&!(((
int64(getGrouptype())==0)&&(getNonplanar()==1))||((getCamerapath()!=
""))||((
int64(getGrouptype())==3))||((getGroupNormal()==0))||((
int64(getGrouptype())==3)))) ) )
225 graph->
evalOpParm(myAngle, nodeidx,
"angle", time, 0);
226 myOppositenormals =
false;
227 if (
true && ( (
true&&!(((
int64(getGrouptype())==3))||((getGroupNormal()==0))||((
int64(getGrouptype())==3)))) ) )
228 graph->
evalOpParm(myOppositenormals, nodeidx,
"oppositenormals", time, 0);
229 myGroupEdges =
false;
230 if (
true && ( (
true&&!(((
int64(getGrouptype())==3)))) ) )
231 graph->
evalOpParm(myGroupEdges, nodeidx,
"groupedges", time, 0);
232 myDominedgeangle =
false;
233 if (
true && ( (
true&&!(((
int64(getGrouptype())==1))||((
int64(getGrouptype())==3))||((getGroupEdges()==0))||((
int64(getGrouptype())==3)))) ) )
234 graph->
evalOpParm(myDominedgeangle, nodeidx,
"dominedgeangle", time, 0);
236 if (
true && ( (
true&&!(((
int64(getGrouptype())==1))||((getDominedgeangle()==0))||((
int64(getGrouptype())==3))||((getGroupEdges()==0))||((
int64(getGrouptype())==3)))) ) )
237 graph->
evalOpParm(myMinedgeangle, nodeidx,
"minedgeangle", time, 0);
238 myDomaxedgeangle =
false;
239 if (
true && ( (
true&&!(((
int64(getGrouptype())==1))||((
int64(getGrouptype())==3))||((getGroupEdges()==0))||((
int64(getGrouptype())==3)))) ) )
240 graph->
evalOpParm(myDomaxedgeangle, nodeidx,
"domaxedgeangle", time, 0);
242 if (
true && ( (
true&&!(((
int64(getGrouptype())==1))||((getDomaxedgeangle()==0))||((
int64(getGrouptype())==3))||((getGroupEdges()==0))||((
int64(getGrouptype())==3)))) ) )
243 graph->
evalOpParm(myMaxedgeangle, nodeidx,
"maxedgeangle", time, 0);
244 myEdgeAngleBetweenEdges =
false;
245 if (
true && ( (
true&&!(((
int64(getGrouptype())!=2))||((
int64(getGrouptype())==3))||((getGroupEdges()==0))||((
int64(getGrouptype())==3)))) ) )
246 graph->
evalOpParm(myEdgeAngleBetweenEdges, nodeidx,
"edgeanglebetweenedges", time, 0);
247 myDominedgelen =
false;
248 if (
true && ( (
true&&!(((
int64(getGrouptype())!=2))||((
int64(getGrouptype())==3))||((getGroupEdges()==0))||((
int64(getGrouptype())==3)))) ) )
249 graph->
evalOpParm(myDominedgelen, nodeidx,
"dominedgelen", time, 0);
251 if (
true && ( (
true&&!(((
int64(getGrouptype())!=2))||((getDominedgelen()==0))||((
int64(getGrouptype())==3))||((getGroupEdges()==0))||((
int64(getGrouptype())==3)))) ) )
252 graph->
evalOpParm(myMinedgelen, nodeidx,
"minedgelen", time, 0);
253 myDomaxedgelen =
false;
254 if (
true && ( (
true&&!(((
int64(getGrouptype())!=2))||((
int64(getGrouptype())==3))||((getGroupEdges()==0))||((
int64(getGrouptype())==3)))) ) )
255 graph->
evalOpParm(myDomaxedgelen, nodeidx,
"domaxedgelen", time, 0);
257 if (
true && ( (
true&&!(((
int64(getGrouptype())!=2))||((getDomaxedgelen()==0))||((
int64(getGrouptype())==3))||((getGroupEdges()==0))||((
int64(getGrouptype())==3)))) ) )
258 graph->
evalOpParm(myMaxedgelen, nodeidx,
"maxedgelen", time, 0);
260 if (
true && ( (
true&&!(((
int64(getGrouptype())!=1))||((
int64(getGrouptype())==3))||((getGroupEdges()==0))||((
int64(getGrouptype())==3)))) ) )
261 graph->
evalOpParm(myDodepth, nodeidx,
"dodepth", time, 0);
263 if (
true && ( (
true&&!(((
int64(getGrouptype())!=1))||((getDodepth()==0))||((
int64(getGrouptype())==3))||((getGroupEdges()==0))||((
int64(getGrouptype())==3)))) ) )
264 graph->
evalOpParm(myEdgestep, nodeidx,
"edgestep", time, 0);
265 myEdgeptgrp =
"0"_UTsh;
266 if (
true && ( (
true&&!(((
int64(getGrouptype())!=1))||((getDodepth()==0))||((
int64(getGrouptype())==3))||((getGroupEdges()==0))||((
int64(getGrouptype())==3)))) ) )
267 graph->
evalOpParm(myEdgeptgrp, nodeidx,
"edgeptgrp", time, 0);
269 if (
true && ( (
true&&!(((
int64(getGrouptype())==3))||((getGroupEdges()==0))||((
int64(getGrouptype())==3)))) ) )
270 graph->
evalOpParm(myUnshared, nodeidx,
"unshared", time, 0);
271 myBoundaryGroups =
false;
272 if (
true && ( (
true&&!(((
int64(getGrouptype())!=1))||((getUnshared()==0))||((
int64(getGrouptype())==3))||((getGroupEdges()==0))||((
int64(getGrouptype())==3)))) ) )
273 graph->
evalOpParm(myBoundaryGroups, nodeidx,
"boundarygroups", time, 0);
274 myGroupRandom =
false;
276 graph->
evalOpParm(myGroupRandom, nodeidx,
"grouprandom", time, 0);
278 if (
true && ( (
true&&!(((getGroupRandom()==0)))) ) )
279 graph->
evalOpParm(myGlobalseed, nodeidx,
"globalseed", time, 0);
280 myUseseedattrib =
false;
281 if (
true && ( (
true&&!(((getGroupRandom()==0)))) ) )
282 graph->
evalOpParm(myUseseedattrib, nodeidx,
"useseedattrib", time, 0);
283 mySeedattrib =
"id"_UTsh;
284 if (
true && ( (
true&&!(((getUseseedattrib()==0))||((getGroupRandom()==0)))) ) )
285 graph->
evalOpParm(mySeedattrib, nodeidx,
"seedattrib", time, 0);
287 if (
true && ( (
true&&!(((getGroupRandom()==0)))) ) )
288 graph->
evalOpParm(myPercent, nodeidx,
"percent", time, 0);
304 template <
typename T>
311 if (idx.
size() != instance.
size()+1)
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 { doGetParmValue(idx, instance, value); }
474 template <
typename T>
481 if (idx.
size() != instance.
size()+1)
519 coerceValue(myIncludenotwhollycontained, ( ( value ) ));
564 coerceValue(myEdgeAngleBetweenEdges, ( ( value ) ));
613 { doSetParmValue(idx, instance, value); }
615 { doSetParmValue(idx, instance, 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); }
649 if (fieldnum.
size() < 1)
668 return "groupbounding";
676 return "includenotwhollycontained";
680 return "invertvolume";
682 return "groupnormal";
688 return "nonplanartol";
694 return "oppositenormals";
698 return "dominedgeangle";
700 return "minedgeangle";
702 return "domaxedgeangle";
704 return "maxedgeangle";
706 return "edgeanglebetweenedges";
708 return "dominedgelen";
712 return "domaxedgelen";
724 return "boundarygroups";
726 return "grouprandom";
730 return "useseedattrib";
742 if (fieldnum.
size() < 1)
743 return PARM_UNSUPPORTED;
849 {
for (
int r = 0;
r < 2;
r++)
for (
int c = 0; c < 2; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
851 {
for (
int r = 0;
r < 3;
r++)
for (
int c = 0; c < 3; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
853 {
for (
int r = 0;
r < 4;
r++)
for (
int c = 0; c < 4; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
866 loadData(is, rampdata);
884 int typelen = colon - data.
buffer();
898 {
int64 iv =
v; UTwrite(os, &iv); }
900 { UTwrite<fpreal64>(os, &
v); }
902 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
904 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
905 UTwrite<fpreal64>(os, &v.
z()); }
907 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
908 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
920 if (s) s->save(ostr);
922 saveData(os, result);
929 ostr << s->getDataTypeToken();
934 saveData(os, result);
938 void save(std::ostream &os)
const
942 saveData(os, myGroupName);
943 saveData(os, myGrouptype);
944 saveData(os, myMergeop);
945 saveData(os, myGroupBase);
946 saveData(os, myBasegroup);
947 saveData(os, myOrdered);
948 saveData(os, myGeotype);
949 saveData(os, myGroupBounding);
950 saveData(os, myBoundtype);
951 saveData(os, mySize);
953 saveData(os, myIncludenotwhollycontained);
955 saveData(os, myInvertvolume);
956 saveData(os, myGroupNormal);
957 saveData(os, myCamerapath);
958 saveData(os, myNonplanar);
959 saveData(os, myNonplanartol);
961 saveData(os, myAngle);
962 saveData(os, myOppositenormals);
963 saveData(os, myGroupEdges);
964 saveData(os, myDominedgeangle);
965 saveData(os, myMinedgeangle);
966 saveData(os, myDomaxedgeangle);
967 saveData(os, myMaxedgeangle);
968 saveData(os, myEdgeAngleBetweenEdges);
969 saveData(os, myDominedgelen);
970 saveData(os, myMinedgelen);
971 saveData(os, myDomaxedgelen);
972 saveData(os, myMaxedgelen);
973 saveData(os, myDodepth);
974 saveData(os, myEdgestep);
975 saveData(os, myEdgeptgrp);
976 saveData(os, myUnshared);
977 saveData(os, myBoundaryGroups);
978 saveData(os, myGroupRandom);
979 saveData(os, myGlobalseed);
980 saveData(os, myUseseedattrib);
981 saveData(os, mySeedattrib);
982 saveData(os, myPercent);
995 loadData(is, myGroupName);
996 loadData(is, myGrouptype);
997 loadData(is, myMergeop);
998 loadData(is, myGroupBase);
999 loadData(is, myBasegroup);
1000 loadData(is, myOrdered);
1001 loadData(is, myGeotype);
1002 loadData(is, myGroupBounding);
1003 loadData(is, myBoundtype);
1004 loadData(is, mySize);
1006 loadData(is, myIncludenotwhollycontained);
1007 loadData(is, myIso);
1008 loadData(is, myInvertvolume);
1009 loadData(is, myGroupNormal);
1010 loadData(is, myCamerapath);
1011 loadData(is, myNonplanar);
1012 loadData(is, myNonplanartol);
1013 loadData(is, myDir);
1014 loadData(is, myAngle);
1015 loadData(is, myOppositenormals);
1016 loadData(is, myGroupEdges);
1017 loadData(is, myDominedgeangle);
1018 loadData(is, myMinedgeangle);
1019 loadData(is, myDomaxedgeangle);
1020 loadData(is, myMaxedgeangle);
1021 loadData(is, myEdgeAngleBetweenEdges);
1022 loadData(is, myDominedgelen);
1023 loadData(is, myMinedgelen);
1024 loadData(is, myDomaxedgelen);
1025 loadData(is, myMaxedgelen);
1026 loadData(is, myDodepth);
1027 loadData(is, myEdgestep);
1028 loadData(is, myEdgeptgrp);
1029 loadData(is, myUnshared);
1030 loadData(is, myBoundaryGroups);
1031 loadData(is, myGroupRandom);
1032 loadData(is, myGlobalseed);
1033 loadData(is, myUseseedattrib);
1034 loadData(is, mySeedattrib);
1035 loadData(is, myPercent);
1045 if (!thissop)
return getGroupName();
1047 OP_Utils::evalOpParm(result, thissop,
"groupname", cookparms.
getCookTime(), 0);
1055 if (!thissop)
return getGrouptype();
1057 OP_Utils::evalOpParm(result, thissop,
"grouptype", cookparms.
getCookTime(), 0);
1065 if (!thissop)
return getMergeop();
1067 OP_Utils::evalOpParm(result, thissop,
"mergeop", cookparms.
getCookTime(), 0);
1075 if (!thissop)
return getGroupBase();
1077 OP_Utils::evalOpParm(result, thissop,
"groupbase", cookparms.
getCookTime(), 0);
1085 if (!thissop)
return getBasegroup();
1087 OP_Utils::evalOpParm(result, thissop,
"basegroup", cookparms.
getCookTime(), 0);
1095 if (!thissop)
return getOrdered();
1097 OP_Utils::evalOpParm(result, thissop,
"ordered", cookparms.
getCookTime(), 0);
1105 if (!thissop)
return getGeotype();
1107 OP_Utils::evalOpParm(result, thissop,
"geotype", cookparms.
getCookTime(), 0);
1115 if (!thissop)
return getGroupBounding();
1117 OP_Utils::evalOpParm(result, thissop,
"groupbounding", cookparms.
getCookTime(), 0);
1125 if (!thissop)
return getBoundtype();
1127 OP_Utils::evalOpParm(result, thissop,
"boundtype", cookparms.
getCookTime(), 0);
1135 if (!thissop)
return getSize();
1137 OP_Utils::evalOpParm(result, thissop,
"size", cookparms.
getCookTime(), 0);
1145 if (!thissop)
return getT();
1147 OP_Utils::evalOpParm(result, thissop,
"t", cookparms.
getCookTime(), 0);
1155 if (!thissop)
return getIncludenotwhollycontained();
1157 OP_Utils::evalOpParm(result, thissop,
"includenotwhollycontained", cookparms.
getCookTime(), 0);
1165 if (!thissop)
return getIso();
1167 OP_Utils::evalOpParm(result, thissop,
"iso", cookparms.
getCookTime(), 0);
1175 if (!thissop)
return getInvertvolume();
1177 OP_Utils::evalOpParm(result, thissop,
"invertvolume", cookparms.
getCookTime(), 0);
1185 if (!thissop)
return getGroupNormal();
1187 OP_Utils::evalOpParm(result, thissop,
"groupnormal", cookparms.
getCookTime(), 0);
1195 if (!thissop)
return getCamerapath();
1197 OP_Utils::evalOpParm(result, thissop,
"camerapath", cookparms.
getCookTime(), 0);
1205 if (!thissop)
return getNonplanar();
1207 OP_Utils::evalOpParm(result, thissop,
"nonplanar", cookparms.
getCookTime(), 0);
1215 if (!thissop)
return getNonplanartol();
1217 OP_Utils::evalOpParm(result, thissop,
"nonplanartol", cookparms.
getCookTime(), 0);
1225 if (!thissop)
return getDir();
1227 OP_Utils::evalOpParm(result, thissop,
"dir", cookparms.
getCookTime(), 0);
1235 if (!thissop)
return getAngle();
1237 OP_Utils::evalOpParm(result, thissop,
"angle", cookparms.
getCookTime(), 0);
1245 if (!thissop)
return getOppositenormals();
1247 OP_Utils::evalOpParm(result, thissop,
"oppositenormals", cookparms.
getCookTime(), 0);
1255 if (!thissop)
return getGroupEdges();
1257 OP_Utils::evalOpParm(result, thissop,
"groupedges", cookparms.
getCookTime(), 0);
1265 if (!thissop)
return getDominedgeangle();
1267 OP_Utils::evalOpParm(result, thissop,
"dominedgeangle", cookparms.
getCookTime(), 0);
1275 if (!thissop)
return getMinedgeangle();
1277 OP_Utils::evalOpParm(result, thissop,
"minedgeangle", cookparms.
getCookTime(), 0);
1285 if (!thissop)
return getDomaxedgeangle();
1287 OP_Utils::evalOpParm(result, thissop,
"domaxedgeangle", cookparms.
getCookTime(), 0);
1295 if (!thissop)
return getMaxedgeangle();
1297 OP_Utils::evalOpParm(result, thissop,
"maxedgeangle", cookparms.
getCookTime(), 0);
1305 if (!thissop)
return getEdgeAngleBetweenEdges();
1307 OP_Utils::evalOpParm(result, thissop,
"edgeanglebetweenedges", cookparms.
getCookTime(), 0);
1315 if (!thissop)
return getDominedgelen();
1317 OP_Utils::evalOpParm(result, thissop,
"dominedgelen", cookparms.
getCookTime(), 0);
1325 if (!thissop)
return getMinedgelen();
1327 OP_Utils::evalOpParm(result, thissop,
"minedgelen", cookparms.
getCookTime(), 0);
1335 if (!thissop)
return getDomaxedgelen();
1337 OP_Utils::evalOpParm(result, thissop,
"domaxedgelen", cookparms.
getCookTime(), 0);
1345 if (!thissop)
return getMaxedgelen();
1347 OP_Utils::evalOpParm(result, thissop,
"maxedgelen", cookparms.
getCookTime(), 0);
1355 if (!thissop)
return getDodepth();
1357 OP_Utils::evalOpParm(result, thissop,
"dodepth", cookparms.
getCookTime(), 0);
1365 if (!thissop)
return getEdgestep();
1367 OP_Utils::evalOpParm(result, thissop,
"edgestep", cookparms.
getCookTime(), 0);
1375 if (!thissop)
return getEdgeptgrp();
1377 OP_Utils::evalOpParm(result, thissop,
"edgeptgrp", cookparms.
getCookTime(), 0);
1385 if (!thissop)
return getUnshared();
1387 OP_Utils::evalOpParm(result, thissop,
"unshared", cookparms.
getCookTime(), 0);
1395 if (!thissop)
return getBoundaryGroups();
1397 OP_Utils::evalOpParm(result, thissop,
"boundarygroups", cookparms.
getCookTime(), 0);
1405 if (!thissop)
return getGroupRandom();
1407 OP_Utils::evalOpParm(result, thissop,
"grouprandom", cookparms.
getCookTime(), 0);
1415 if (!thissop)
return getGlobalseed();
1417 OP_Utils::evalOpParm(result, thissop,
"globalseed", cookparms.
getCookTime(), 0);
1425 if (!thissop)
return getUseseedattrib();
1427 OP_Utils::evalOpParm(result, thissop,
"useseedattrib", cookparms.
getCookTime(), 0);
1435 if (!thissop)
return getSeedattrib();
1437 OP_Utils::evalOpParm(result, thissop,
"seedattrib", cookparms.
getCookTime(), 0);
1445 if (!thissop)
return getPercent();
1447 OP_Utils::evalOpParm(result, thissop,
"percent", cookparms.
getCookTime(), 0);
1459 bool myGroupBounding;
1463 bool myIncludenotwhollycontained;
1465 bool myInvertvolume;
1472 bool myOppositenormals;
1474 bool myDominedgeangle;
1476 bool myDomaxedgeangle;
1478 bool myEdgeAngleBetweenEdges;
1479 bool myDominedgelen;
1481 bool myDomaxedgelen;
1487 bool myBoundaryGroups;
1490 bool myUseseedattrib;
void setIncludenotwhollycontained(bool val)
bool getEdgeAngleBetweenEdges() const
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
static void saveData(std::ostream &os, UT_StringHolder s)
void setMaxedgeangle(fpreal64 val)
fpreal64 getPercent() const
bool opUnshared(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
const UT_StringHolder & getGroupName() const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
static void loadData(UT_IStream &is, bool &v)
const UT_StringHolder & getCamerapath() const
SOP_Node * getNode() const
void setGrouptype(Grouptype val)
bool operator!=(const SOP_GroupCreateParms &src) const
void setDir(UT_Vector3D val)
static void saveData(std::ostream &os, UT_Matrix4D v)
bool opGroupRandom(const SOP_NodeVerb::CookParms &cookparms) const
void setGeotype(int64 val)
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
fpreal64 opMaxedgeangle(const SOP_NodeVerb::CookParms &cookparms) const
void setBasegroup(const UT_StringHolder &val)
T clampMaxValue(fpreal maxvalue, const T &src) const
void setSize(UT_Vector3D val)
exint getNestNumParms(TempIndex idx) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
static void saveData(std::ostream &os, int64 v)
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
UT_Vector3D opDir(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, bool v)
void setGroupBounding(bool val)
bool opInvertvolume(const SOP_NodeVerb::CookParms &cookparms) const
bool opDomaxedgelen(const SOP_NodeVerb::CookParms &cookparms) const
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
bool getDomaxedgelen() const
UT_StringHolder opEdgeptgrp(const SOP_NodeVerb::CookParms &cookparms) const
const OP_Context & context() const
static void loadData(UT_IStream &is, UT_Vector3D &v)
constexpr SYS_FORCE_INLINE T & z() noexcept
void setGroupName(const UT_StringHolder &val)
void setEdgeAngleBetweenEdges(bool val)
bool opDominedgelen(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Matrix2D v)
void setMinedgeangle(fpreal64 val)
void setCamerapath(const UT_StringHolder &val)
UT_StringHolder opSeedattrib(const SOP_NodeVerb::CookParms &cookparms) const
bool operator==(const SOP_GroupCreateParms &src) const
SYS_FORCE_INLINE const char * buffer() const
Boundtype getBoundtype() const
void setInvertvolume(bool val)
static void loadData(UT_IStream &is, UT_Vector4D &v)
bool opGroupEdges(const SOP_NodeVerb::CookParms &cookparms) const
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
void setBoundaryGroups(bool val)
An output stream object that owns its own string buffer storage.
UT_Vector3D getDir() const
void setUseseedattrib(bool val)
bool opDominedgeangle(const SOP_NodeVerb::CookParms &cookparms) const
bool opDodepth(const SOP_NodeVerb::CookParms &cookparms) const
**But if you need a result
ParmType getNestParmType(TempIndex fieldnum) const override
bool getDominedgeangle() const
static void loadData(UT_IStream &is, UT_Vector2D &v)
void setDodepth(bool val)
T clampMinValue(fpreal minvalue, const T &src) const
const char * getNestParmName(TempIndex fieldnum) const override
fpreal64 getNonplanartol() const
fpreal64 opIso(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 & getEdgeptgrp() const
bool opGroupNormal(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
void setDominedgelen(bool val)
constexpr SYS_FORCE_INLINE T & x() noexcept
bool getGroupEdges() const
UT_Vector3D getSize() const
fpreal64 getAngle() const
UT_Vector3D opT(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & x() noexcept
fpreal64 opGlobalseed(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getBasegroup() const
static void loadData(UT_IStream &is, UT_Vector3I &v)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
int64 opGeotype(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
void setBoundtype(Boundtype val)
void setIso(fpreal64 val)
void setOppositenormals(bool val)
fpreal64 opMaxedgelen(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
bool opDomaxedgeangle(const SOP_NodeVerb::CookParms &cookparms) const
bool getGroupBounding() const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
void setUnshared(bool val)
static void loadData(UT_IStream &is, int64 &v)
constexpr SYS_FORCE_INLINE T & z() noexcept
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
const UT_StringHolder & getSeedattrib() const
fpreal64 opMinedgeangle(const SOP_NodeVerb::CookParms &cookparms) const
void copyFrom(const OP_NodeParms *src) override
void setDomaxedgeangle(bool val)
const OP_GraphProxy * graph() const
static void loadData(UT_IStream &is, UT_Vector4I &v)
void setOrdered(bool val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
bool opGroupBounding(const SOP_NodeVerb::CookParms &cookparms) const
bool getGroupNormal() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
bool opUseseedattrib(const SOP_NodeVerb::CookParms &cookparms) const
void setNonplanar(bool val)
int64 opEdgestep(const SOP_NodeVerb::CookParms &cookparms) const
void setGroupBase(bool val)
int64 getEdgestep() const
bool isParmColorRamp(exint idx) const override
fpreal64 getGlobalseed() const
bool opOrdered(const SOP_NodeVerb::CookParms &cookparms) const
void setPercent(fpreal64 val)
bool getDomaxedgeangle() const
bool getOppositenormals() const
UT_Vector3T< fpreal64 > UT_Vector3D
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
UT_StringHolder opBasegroup(const SOP_NodeVerb::CookParms &cookparms) const
void setMinedgelen(fpreal64 val)
void setDominedgeangle(bool val)
static void loadData(UT_IStream &is, UT_Matrix3D &v)
static void loadData(UT_IStream &is, UT_Matrix4D &v)
bool getBoundaryGroups() const
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
Grouptype opGrouptype(const SOP_NodeVerb::CookParms &cookparms) const
bool getNonplanar() const
void setAngle(fpreal64 val)
Boundtype opBoundtype(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Vector4D v)
void saveBinary(std::ostream &os) const
Save string to binary stream.
bool getIncludenotwhollycontained() const
void setMaxedgelen(fpreal64 val)
GT_API const UT_StringHolder version
fpreal64 getMaxedgeangle() const
static void loadData(UT_IStream &is, UT_Vector2I &v)
bool opNonplanar(const SOP_NodeVerb::CookParms &cookparms) const
bool getUseseedattrib() const
Mergeop getMergeop() const
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
void setGlobalseed(fpreal64 val)
static void loadData(UT_IStream &is, fpreal64 &v)
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
fpreal64 opPercent(const SOP_NodeVerb::CookParms &cookparms) const
void coerceValue(T &result, const S &src) const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
UT_StringHolder opCamerapath(const SOP_NodeVerb::CookParms &cookparms) const
void setEdgeptgrp(const UT_StringHolder &val)
bool getInvertvolume() const
void save(std::ostream &os) const
DEP_MicroNode * depnode() const
void setSeedattrib(const UT_StringHolder &val)
Utility class for containing a color ramp.
fpreal64 opMinedgelen(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
static void loadData(UT_IStream &is, UT_Matrix2D &v)
Mergeop opMergeop(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & w() noexcept
void setDomaxedgelen(bool val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
static void saveData(std::ostream &os, UT_Vector3D v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
fpreal64 opNonplanartol(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_StringHolder &v)
fpreal getCookTime() const
void setMergeop(Mergeop val)
const char * findChar(int c) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
void setT(UT_Vector3D val)
void setNonplanartol(fpreal64 val)
bool getGroupRandom() const
bool getDominedgelen() const
static void saveData(std::ostream &os, UT_Vector2D v)
constexpr SYS_FORCE_INLINE T & y() noexcept
fpreal64 opAngle(const SOP_NodeVerb::CookParms &cookparms) const
void setEdgestep(int64 val)
bool getGroupBase() const
Grouptype getGrouptype() const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
bool opIncludenotwhollycontained(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getMinedgeangle() const
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
static void saveData(std::ostream &os, fpreal64 v)
bool opBoundaryGroups(const SOP_NodeVerb::CookParms &cookparms) const
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
fpreal64 getMaxedgelen() const
void setGroupRandom(bool val)
static void saveData(std::ostream &os, UT_Matrix3D v)
constexpr SYS_FORCE_INLINE T & y() noexcept
UT_StringHolder opGroupName(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE bool isstring() const
void loadFromOpSubclass(const LoadParms &loadparms) override
OP_NodeParms & operator=(const OP_NodeParms &)=default
bool opGroupBase(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
void setGroupEdges(bool val)
bool opOppositenormals(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3D opSize(const SOP_NodeVerb::CookParms &cookparms) const
bool load(UT_IStream &is)
bool opEdgeAngleBetweenEdges(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & x() noexcept
fpreal64 getMinedgelen() const
void setGroupNormal(bool val)