23 namespace SOP_PolyBevel_3_0Enums
81 myIgnoreBridges =
true;
82 myIgnoreShared =
false;
83 myIgnoreFlatEdges =
false;
84 myIgnoreFlatPoints =
false;
85 myIgnoreInlinePoints =
false;
89 myPointScaleAttr =
"pscale"_UTsh;
92 mySlideEdges =
""_UTsh;
93 myDetectCollisions =
true;
94 myRestrictSlides =
true;
96 myStopAtSlideEnd =
true;
97 myStopAtPinches =
true;
99 myStopAtCollisions =
true;
104 myReverseProfile =
false;
105 mySymmetrizeProfile =
true;
106 myProfileDirection =
""_UTsh;
109 myUsePointFilletPolys =
false;
110 myPointFilletPolys =
"pointfilletpolys"_UTsh;
111 myUsePointFilletEdges =
false;
112 myPointFilletEdges =
"pointfilletedges"_UTsh;
113 myUseEdgeFilletGroup =
false;
114 myEdgeFilletGroup =
"edgefilletpolys"_UTsh;
115 myUseOffsetEdges =
false;
116 myOffsetEdges =
"offsetedges"_UTsh;
117 myUseOffsetPoints =
false;
118 myOffsetPoints =
"offsetpoints"_UTsh;
119 myUseMergedPoints =
false;
120 myMergedPoints =
"mergedpoints"_UTsh;
121 myProfileSampling = 0;
135 if (myGroup != src.myGroup)
return false;
136 if (myGroupType != src.myGroupType)
return false;
137 if (myIgnoreBridges != src.myIgnoreBridges)
return false;
138 if (myIgnoreShared != src.myIgnoreShared)
return false;
139 if (myIgnoreFlatEdges != src.myIgnoreFlatEdges)
return false;
140 if (myIgnoreFlatPoints != src.myIgnoreFlatPoints)
return false;
141 if (myIgnoreInlinePoints != src.myIgnoreInlinePoints)
return false;
142 if (myFlatAngle != src.myFlatAngle)
return false;
143 if (myOffset != src.myOffset)
return false;
144 if (myUseOffsetScale != src.myUseOffsetScale)
return false;
145 if (myPointScaleAttr != src.myPointScaleAttr)
return false;
146 if (mySliding != src.mySliding)
return false;
147 if (myAsymTol != src.myAsymTol)
return false;
148 if (mySlideEdges != src.mySlideEdges)
return false;
149 if (myDetectCollisions != src.myDetectCollisions)
return false;
150 if (myRestrictSlides != src.myRestrictSlides)
return false;
151 if (myLimit != src.myLimit)
return false;
152 if (myStopAtSlideEnd != src.myStopAtSlideEnd)
return false;
153 if (myStopAtPinches != src.myStopAtPinches)
return false;
154 if (myPinchAngle != src.myPinchAngle)
return false;
155 if (myStopAtCollisions != src.myStopAtCollisions)
return false;
156 if (myFilletShape != src.myFilletShape)
return false;
157 if (myConvexity != src.myConvexity)
return false;
158 if (myProfileSource != src.myProfileSource)
return false;
159 if (myProfileScale != src.myProfileScale)
return false;
160 if (myReverseProfile != src.myReverseProfile)
return false;
161 if (mySymmetrizeProfile != src.mySymmetrizeProfile)
return false;
162 if (myProfileDirection != src.myProfileDirection)
return false;
163 if (myProfileRamp != src.myProfileRamp)
164 {
if (!myProfileRamp || !src.myProfileRamp || !(*myProfileRamp == *src.myProfileRamp))
return false; }
165 if (myFlatBoost != src.myFlatBoost)
return false;
166 if (myUsePointFilletPolys != src.myUsePointFilletPolys)
return false;
167 if (myPointFilletPolys != src.myPointFilletPolys)
return false;
168 if (myUsePointFilletEdges != src.myUsePointFilletEdges)
return false;
169 if (myPointFilletEdges != src.myPointFilletEdges)
return false;
170 if (myUseEdgeFilletGroup != src.myUseEdgeFilletGroup)
return false;
171 if (myEdgeFilletGroup != src.myEdgeFilletGroup)
return false;
172 if (myUseOffsetEdges != src.myUseOffsetEdges)
return false;
173 if (myOffsetEdges != src.myOffsetEdges)
return false;
174 if (myUseOffsetPoints != src.myUseOffsetPoints)
return false;
175 if (myOffsetPoints != src.myOffsetPoints)
return false;
176 if (myUseMergedPoints != src.myUseMergedPoints)
return false;
177 if (myMergedPoints != src.myMergedPoints)
return false;
178 if (myProfileSampling != src.myProfileSampling)
return false;
179 if (myDivisions != src.myDivisions)
return false;
201 graph->
evalOpParm(myGroup, nodeidx,
"group", time, 0);
204 graph->
evalOpParm(myGroupType, nodeidx,
"grouptype", time, 0);
205 myIgnoreBridges =
true;
206 if (
true && ( (
true&&!(((
int64(getGroupType())!=0)))) ) )
207 graph->
evalOpParm(myIgnoreBridges, nodeidx,
"ignorebridgededges", time, 0);
208 myIgnoreShared =
false;
209 if (
true && ( (
true&&!(((
int64(getGroupType())!=0)))) ) )
210 graph->
evalOpParm(myIgnoreShared, nodeidx,
"ignoresharededges", time, 0);
211 myIgnoreFlatEdges =
false;
212 if (
true && ( (
true&&!(((
int64(getGroupType())==1)))) ) )
213 graph->
evalOpParm(myIgnoreFlatEdges, nodeidx,
"ignoreflatedges", time, 0);
214 myIgnoreFlatPoints =
false;
215 if (
true && ( (
true&&!(((
int64(getGroupType())!=1)))) ) )
216 graph->
evalOpParm(myIgnoreFlatPoints, nodeidx,
"ignoreflatpoints", time, 0);
217 myIgnoreInlinePoints =
false;
218 if (
true && ( (
true&&!(((
int64(getGroupType())!=1)))) ) )
219 graph->
evalOpParm(myIgnoreInlinePoints, nodeidx,
"ignoreinlinepoints", time, 0);
221 if (
true && ( (
true&&!(((getIgnoreFlatEdges()==0)&&(getIgnoreFlatPoints()==0)&&(getIgnoreInlinePoints()==0)))) ) )
222 graph->
evalOpParm(myFlatAngle, nodeidx,
"flatangle", time, 0);
225 graph->
evalOpParm(myOffset, nodeidx,
"offset", time, 0);
226 myUseOffsetScale = 0;
228 graph->
evalOpParm(myUseOffsetScale, nodeidx,
"useoffsetscale", time, 0);
229 myPointScaleAttr =
"pscale"_UTsh;
230 if (
true && ( (
true&&!(((
int64(getUseOffsetScale())==0)))) ) )
231 graph->
evalOpParm(myPointScaleAttr, nodeidx,
"pointscaleattr", time, 0);
234 graph->
evalOpParm(mySliding, nodeidx,
"sliding", time, 0);
236 if (
true && ( (
true&&!(((
int64(getSliding())!=0))||((
int64(getGroupType())==1)))) ) )
237 graph->
evalOpParm(myAsymTol, nodeidx,
"asymtol", time, 0);
238 mySlideEdges =
""_UTsh;
239 if (
true && ( (
true&&!(((
int64(getSliding())==1)))) ) )
240 graph->
evalOpParm(mySlideEdges, nodeidx,
"slideedges", time, 0);
241 myDetectCollisions =
true;
243 graph->
evalOpParm(myDetectCollisions, nodeidx,
"detectcollisions", time, 0);
244 myRestrictSlides =
true;
246 graph->
evalOpParm(myRestrictSlides, nodeidx,
"restrictslides", time, 0);
249 graph->
evalOpParm(myLimit, nodeidx,
"limit", time, 0);
250 myStopAtSlideEnd =
true;
251 if (
true && ( (
true&&!(((
int64(getLimit())==0))||((getRestrictSlides()==0)))) ) )
252 graph->
evalOpParm(myStopAtSlideEnd, nodeidx,
"stopatslideend", time, 0);
253 myStopAtPinches =
true;
254 if (
true && ( (
true&&!(((
int64(getLimit())==0))||((getDetectCollisions()==0)))) ) )
255 graph->
evalOpParm(myStopAtPinches, nodeidx,
"stopatpinches", time, 0);
257 if (
true && ( (
true&&!(((getStopAtPinches()==0)))) ) )
258 graph->
evalOpParm(myPinchAngle, nodeidx,
"pinchangle", time, 0);
259 myStopAtCollisions =
true;
260 if (
true && ( (
true&&!(((getStopAtPinches()==0)))) ) )
261 graph->
evalOpParm(myStopAtCollisions, nodeidx,
"stopatcollisions", time, 0);
264 graph->
evalOpParm(myFilletShape, nodeidx,
"filletshape", time, 0);
266 if (
true && ( (
true&&!(((
int64(getFilletShape())!=4))||((
int64(getGroupType())==1)))) ) )
267 graph->
evalOpParm(myConvexity, nodeidx,
"convexity", time, 0);
269 if (
true && ( (
true&&!(((
int64(getGroupType())==1))||((
int64(getFilletShape())!=4)))) ) )
270 graph->
evalOpParm(myProfileSource, nodeidx,
"profilesource", time, 0);
272 if (
true && ( (
true&&!(((
int64(getGroupType())==1))||((
int64(getFilletShape())!=4))||((
int64(getProfileSource())==0))||((
int64(getGroupType())==1))||((
int64(getFilletShape())!=4))||((
int64(getProfileSource())==0)))) ) )
273 graph->
evalOpParm(myProfileScale, nodeidx,
"profilescale", time, 0);
274 myReverseProfile =
false;
275 if (
true && ( (
true&&!(((
int64(getGroupType())==1))||((
int64(getFilletShape())!=4))||((
int64(getProfileSource())==0))||((
int64(getGroupType())==1))||((
int64(getFilletShape())!=4))||((
int64(getProfileSource())==0)))) ) )
276 graph->
evalOpParm(myReverseProfile, nodeidx,
"reverseprofile", time, 0);
277 mySymmetrizeProfile =
true;
278 if (
true && ( (
true&&!(((
int64(getGroupType())==1))||((
int64(getFilletShape())!=4))||((
int64(getProfileSource())==0))||((
int64(getGroupType())==1))||((
int64(getFilletShape())!=4))||((
int64(getProfileSource())==0)))) ) )
279 graph->
evalOpParm(mySymmetrizeProfile, nodeidx,
"symmetrizeprofile", time, 0);
280 myProfileDirection =
""_UTsh;
281 if (
true && ( (
true&&!(((
int64(getGroupType())==1))||((
int64(getFilletShape())!=4))||((
int64(getProfileSource())==0))||((getSymmetrizeProfile()==1)))) ) )
282 graph->
evalOpParm(myProfileDirection, nodeidx,
"profiledirection", time, 0);
284 if (
true && ( (
true&&!(((
int64(getGroupType())==1))||((
int64(getFilletShape())!=4))||((
int64(getProfileSource())==0))||((
int64(getGroupType())==1))||((
int64(getFilletShape())!=4))||((
int64(getProfileSource())!=1)))) ) )
285 graph->
evalOpParm(myProfileRamp, nodeidx,
"profileramp", time, 0);
287 if (
true && ( (
true&&!(((
int64(getGroupType())==1))||((
int64(getFilletShape())!=4))||((
int64(getProfileSource())==0)))) ) )
288 graph->
evalOpParm(myFlatBoost, nodeidx,
"flatboost", time, 0);
289 myUsePointFilletPolys =
false;
291 graph->
evalOpParm(myUsePointFilletPolys, nodeidx,
"useptfilletgroup", time, 0);
292 myPointFilletPolys =
"pointfilletpolys"_UTsh;
293 if (
true && ( (
true&&!(((getUsePointFilletPolys()==0)))) ) )
294 graph->
evalOpParm(myPointFilletPolys, nodeidx,
"ptfilletgroup", time, 0);
295 myUsePointFilletEdges =
false;
297 graph->
evalOpParm(myUsePointFilletEdges, nodeidx,
"useptfilletedges", time, 0);
298 myPointFilletEdges =
"pointfilletedges"_UTsh;
299 if (
true && ( (
true&&!(((getUsePointFilletEdges()==0)))) ) )
300 graph->
evalOpParm(myPointFilletEdges, nodeidx,
"ptfilletedges", time, 0);
301 myUseEdgeFilletGroup =
false;
302 if (
true && ( (
true&&!(((
int64(getGroupType())==1)))) ) )
303 graph->
evalOpParm(myUseEdgeFilletGroup, nodeidx,
"useedgefilletgroup", time, 0);
304 myEdgeFilletGroup =
"edgefilletpolys"_UTsh;
305 if (
true && ( (
true&&!(((getUseEdgeFilletGroup()==0))||((
int64(getGroupType())==1)))) ) )
306 graph->
evalOpParm(myEdgeFilletGroup, nodeidx,
"edgeprims", time, 0);
307 myUseOffsetEdges =
false;
309 graph->
evalOpParm(myUseOffsetEdges, nodeidx,
"useoffsetedges", time, 0);
310 myOffsetEdges =
"offsetedges"_UTsh;
311 if (
true && ( (
true&&!(((getUseOffsetEdges()==0)))) ) )
312 graph->
evalOpParm(myOffsetEdges, nodeidx,
"offsetedges", time, 0);
313 myUseOffsetPoints =
false;
315 graph->
evalOpParm(myUseOffsetPoints, nodeidx,
"useoffsetpoints", time, 0);
316 myOffsetPoints =
"offsetpoints"_UTsh;
317 if (
true && ( (
true&&!(((getUseOffsetPoints()==0)))) ) )
318 graph->
evalOpParm(myOffsetPoints, nodeidx,
"offsetpoints", time, 0);
319 myUseMergedPoints =
false;
321 graph->
evalOpParm(myUseMergedPoints, nodeidx,
"usemergedpoints", time, 0);
322 myMergedPoints =
"mergedpoints"_UTsh;
323 if (
true && ( (
true&&!(((getUseMergedPoints()==0)))) ) )
324 graph->
evalOpParm(myMergedPoints, nodeidx,
"mergedpoints", time, 0);
325 myProfileSampling = 0;
326 if (
true && ( (
true&&!(((
int64(getGroupType())==1))||((
int64(getFilletShape())!=4))||((
int64(getProfileSource())==0)))) ) )
327 graph->
evalOpParm(myProfileSampling, nodeidx,
"profilesampling", time, 0);
329 if (
true && ( (
true&&!(((
int64(getFilletShape())==0))||((
int64(getProfileSampling())==2)))) ) )
330 graph->
evalOpParm(myDivisions, nodeidx,
"divisions", time, 0);
346 template <
typename T>
353 if (idx.
size() != instance.
size()+1)
503 { doGetParmValue(idx, instance, value); }
505 { doGetParmValue(idx, instance, value); }
507 { doGetParmValue(idx, instance, value); }
509 { doGetParmValue(idx, instance, value); }
511 { doGetParmValue(idx, instance, value); }
513 { doGetParmValue(idx, instance, value); }
515 { doGetParmValue(idx, instance, value); }
517 { doGetParmValue(idx, instance, value); }
519 { doGetParmValue(idx, instance, value); }
521 { doGetParmValue(idx, instance, value); }
523 { doGetParmValue(idx, instance, value); }
525 template <
typename T>
532 if (idx.
size() != instance.
size()+1)
673 { doSetParmValue(idx, instance, value); }
675 { doSetParmValue(idx, instance, value); }
677 { doSetParmValue(idx, instance, value); }
679 { doSetParmValue(idx, instance, value); }
681 { doSetParmValue(idx, instance, value); }
683 { doSetParmValue(idx, instance, value); }
685 { doSetParmValue(idx, instance, value); }
687 { doSetParmValue(idx, instance, value); }
689 { doSetParmValue(idx, instance, value); }
691 { doSetParmValue(idx, instance, value); }
693 { doSetParmValue(idx, instance, value); }
709 if (fieldnum.
size() < 1)
718 return "ignorebridgededges";
720 return "ignoresharededges";
722 return "ignoreflatedges";
724 return "ignoreflatpoints";
726 return "ignoreinlinepoints";
732 return "useoffsetscale";
734 return "pointscaleattr";
742 return "detectcollisions";
744 return "restrictslides";
748 return "stopatslideend";
750 return "stopatpinches";
754 return "stopatcollisions";
756 return "filletshape";
760 return "profilesource";
762 return "profilescale";
764 return "reverseprofile";
766 return "symmetrizeprofile";
768 return "profiledirection";
770 return "profileramp";
774 return "useptfilletgroup";
776 return "ptfilletgroup";
778 return "useptfilletedges";
780 return "ptfilletedges";
782 return "useedgefilletgroup";
786 return "useoffsetedges";
788 return "offsetedges";
790 return "useoffsetpoints";
792 return "offsetpoints";
794 return "usemergedpoints";
796 return "mergedpoints";
798 return "profilesampling";
808 if (fieldnum.
size() < 1)
809 return PARM_UNSUPPORTED;
921 {
for (
int r = 0;
r < 2;
r++)
for (
int c = 0; c < 2; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
923 {
for (
int r = 0;
r < 3;
r++)
for (
int c = 0; c < 3; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
925 {
for (
int r = 0;
r < 4;
r++)
for (
int c = 0; c < 4; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
938 loadData(is, rampdata);
956 int typelen = colon - data.
buffer();
970 {
int64 iv =
v; UTwrite(os, &iv); }
972 { UTwrite<fpreal64>(os, &
v); }
974 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
976 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
977 UTwrite<fpreal64>(os, &v.
z()); }
979 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
980 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
992 if (s) s->save(ostr);
994 saveData(os, result);
1001 ostr << s->getDataTypeToken();
1003 s->saveBinary(ostr);
1005 result = ostr.
str();
1006 saveData(os, result);
1014 saveData(os, myGroup);
1015 saveData(os, myGroupType);
1016 saveData(os, myIgnoreBridges);
1017 saveData(os, myIgnoreShared);
1018 saveData(os, myIgnoreFlatEdges);
1019 saveData(os, myIgnoreFlatPoints);
1020 saveData(os, myIgnoreInlinePoints);
1021 saveData(os, myFlatAngle);
1022 saveData(os, myOffset);
1023 saveData(os, myUseOffsetScale);
1024 saveData(os, myPointScaleAttr);
1025 saveData(os, mySliding);
1026 saveData(os, myAsymTol);
1027 saveData(os, mySlideEdges);
1028 saveData(os, myDetectCollisions);
1029 saveData(os, myRestrictSlides);
1030 saveData(os, myLimit);
1031 saveData(os, myStopAtSlideEnd);
1032 saveData(os, myStopAtPinches);
1033 saveData(os, myPinchAngle);
1034 saveData(os, myStopAtCollisions);
1035 saveData(os, myFilletShape);
1036 saveData(os, myConvexity);
1037 saveData(os, myProfileSource);
1038 saveData(os, myProfileScale);
1039 saveData(os, myReverseProfile);
1040 saveData(os, mySymmetrizeProfile);
1041 saveData(os, myProfileDirection);
1042 saveData(os, myProfileRamp);
1043 saveData(os, myFlatBoost);
1044 saveData(os, myUsePointFilletPolys);
1045 saveData(os, myPointFilletPolys);
1046 saveData(os, myUsePointFilletEdges);
1047 saveData(os, myPointFilletEdges);
1048 saveData(os, myUseEdgeFilletGroup);
1049 saveData(os, myEdgeFilletGroup);
1050 saveData(os, myUseOffsetEdges);
1051 saveData(os, myOffsetEdges);
1052 saveData(os, myUseOffsetPoints);
1053 saveData(os, myOffsetPoints);
1054 saveData(os, myUseMergedPoints);
1055 saveData(os, myMergedPoints);
1056 saveData(os, myProfileSampling);
1057 saveData(os, myDivisions);
1070 loadData(is, myGroup);
1071 loadData(is, myGroupType);
1072 loadData(is, myIgnoreBridges);
1073 loadData(is, myIgnoreShared);
1074 loadData(is, myIgnoreFlatEdges);
1075 loadData(is, myIgnoreFlatPoints);
1076 loadData(is, myIgnoreInlinePoints);
1077 loadData(is, myFlatAngle);
1078 loadData(is, myOffset);
1079 loadData(is, myUseOffsetScale);
1080 loadData(is, myPointScaleAttr);
1081 loadData(is, mySliding);
1082 loadData(is, myAsymTol);
1083 loadData(is, mySlideEdges);
1084 loadData(is, myDetectCollisions);
1085 loadData(is, myRestrictSlides);
1086 loadData(is, myLimit);
1087 loadData(is, myStopAtSlideEnd);
1088 loadData(is, myStopAtPinches);
1089 loadData(is, myPinchAngle);
1090 loadData(is, myStopAtCollisions);
1091 loadData(is, myFilletShape);
1092 loadData(is, myConvexity);
1093 loadData(is, myProfileSource);
1094 loadData(is, myProfileScale);
1095 loadData(is, myReverseProfile);
1096 loadData(is, mySymmetrizeProfile);
1097 loadData(is, myProfileDirection);
1098 loadData(is, myProfileRamp);
1099 loadData(is, myFlatBoost);
1100 loadData(is, myUsePointFilletPolys);
1101 loadData(is, myPointFilletPolys);
1102 loadData(is, myUsePointFilletEdges);
1103 loadData(is, myPointFilletEdges);
1104 loadData(is, myUseEdgeFilletGroup);
1105 loadData(is, myEdgeFilletGroup);
1106 loadData(is, myUseOffsetEdges);
1107 loadData(is, myOffsetEdges);
1108 loadData(is, myUseOffsetPoints);
1109 loadData(is, myOffsetPoints);
1110 loadData(is, myUseMergedPoints);
1111 loadData(is, myMergedPoints);
1112 loadData(is, myProfileSampling);
1113 loadData(is, myDivisions);
1123 if (!thissop)
return getGroup();
1125 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
1133 if (!thissop)
return getGroupType();
1135 OP_Utils::evalOpParm(result, thissop,
"grouptype", cookparms.
getCookTime(), 0);
1143 if (!thissop)
return getIgnoreBridges();
1145 OP_Utils::evalOpParm(result, thissop,
"ignorebridgededges", cookparms.
getCookTime(), 0);
1153 if (!thissop)
return getIgnoreShared();
1155 OP_Utils::evalOpParm(result, thissop,
"ignoresharededges", cookparms.
getCookTime(), 0);
1163 if (!thissop)
return getIgnoreFlatEdges();
1165 OP_Utils::evalOpParm(result, thissop,
"ignoreflatedges", cookparms.
getCookTime(), 0);
1173 if (!thissop)
return getIgnoreFlatPoints();
1175 OP_Utils::evalOpParm(result, thissop,
"ignoreflatpoints", cookparms.
getCookTime(), 0);
1183 if (!thissop)
return getIgnoreInlinePoints();
1185 OP_Utils::evalOpParm(result, thissop,
"ignoreinlinepoints", cookparms.
getCookTime(), 0);
1193 if (!thissop)
return getFlatAngle();
1195 OP_Utils::evalOpParm(result, thissop,
"flatangle", cookparms.
getCookTime(), 0);
1203 if (!thissop)
return getOffset();
1205 OP_Utils::evalOpParm(result, thissop,
"offset", cookparms.
getCookTime(), 0);
1213 if (!thissop)
return getUseOffsetScale();
1215 OP_Utils::evalOpParm(result, thissop,
"useoffsetscale", cookparms.
getCookTime(), 0);
1223 if (!thissop)
return getPointScaleAttr();
1225 OP_Utils::evalOpParm(result, thissop,
"pointscaleattr", cookparms.
getCookTime(), 0);
1233 if (!thissop)
return getSliding();
1235 OP_Utils::evalOpParm(result, thissop,
"sliding", cookparms.
getCookTime(), 0);
1243 if (!thissop)
return getAsymTol();
1245 OP_Utils::evalOpParm(result, thissop,
"asymtol", cookparms.
getCookTime(), 0);
1253 if (!thissop)
return getSlideEdges();
1255 OP_Utils::evalOpParm(result, thissop,
"slideedges", cookparms.
getCookTime(), 0);
1263 if (!thissop)
return getDetectCollisions();
1265 OP_Utils::evalOpParm(result, thissop,
"detectcollisions", cookparms.
getCookTime(), 0);
1273 if (!thissop)
return getRestrictSlides();
1275 OP_Utils::evalOpParm(result, thissop,
"restrictslides", cookparms.
getCookTime(), 0);
1283 if (!thissop)
return getLimit();
1285 OP_Utils::evalOpParm(result, thissop,
"limit", cookparms.
getCookTime(), 0);
1286 return Limit(result);
1293 if (!thissop)
return getStopAtSlideEnd();
1295 OP_Utils::evalOpParm(result, thissop,
"stopatslideend", cookparms.
getCookTime(), 0);
1303 if (!thissop)
return getStopAtPinches();
1305 OP_Utils::evalOpParm(result, thissop,
"stopatpinches", cookparms.
getCookTime(), 0);
1313 if (!thissop)
return getPinchAngle();
1315 OP_Utils::evalOpParm(result, thissop,
"pinchangle", cookparms.
getCookTime(), 0);
1323 if (!thissop)
return getStopAtCollisions();
1325 OP_Utils::evalOpParm(result, thissop,
"stopatcollisions", cookparms.
getCookTime(), 0);
1333 if (!thissop)
return getFilletShape();
1335 OP_Utils::evalOpParm(result, thissop,
"filletshape", cookparms.
getCookTime(), 0);
1343 if (!thissop)
return getConvexity();
1345 OP_Utils::evalOpParm(result, thissop,
"convexity", cookparms.
getCookTime(), 0);
1353 if (!thissop)
return getProfileSource();
1355 OP_Utils::evalOpParm(result, thissop,
"profilesource", cookparms.
getCookTime(), 0);
1363 if (!thissop)
return getProfileScale();
1365 OP_Utils::evalOpParm(result, thissop,
"profilescale", cookparms.
getCookTime(), 0);
1373 if (!thissop)
return getReverseProfile();
1375 OP_Utils::evalOpParm(result, thissop,
"reverseprofile", cookparms.
getCookTime(), 0);
1383 if (!thissop)
return getSymmetrizeProfile();
1385 OP_Utils::evalOpParm(result, thissop,
"symmetrizeprofile", cookparms.
getCookTime(), 0);
1393 if (!thissop)
return getProfileDirection();
1395 OP_Utils::evalOpParm(result, thissop,
"profiledirection", cookparms.
getCookTime(), 0);
1403 if (!thissop)
return getProfileRamp();
1405 OP_Utils::evalOpParm(result, thissop,
"profileramp", cookparms.
getCookTime(), 0);
1413 if (!thissop)
return getFlatBoost();
1415 OP_Utils::evalOpParm(result, thissop,
"flatboost", cookparms.
getCookTime(), 0);
1423 if (!thissop)
return getUsePointFilletPolys();
1425 OP_Utils::evalOpParm(result, thissop,
"useptfilletgroup", cookparms.
getCookTime(), 0);
1433 if (!thissop)
return getPointFilletPolys();
1435 OP_Utils::evalOpParm(result, thissop,
"ptfilletgroup", cookparms.
getCookTime(), 0);
1443 if (!thissop)
return getUsePointFilletEdges();
1445 OP_Utils::evalOpParm(result, thissop,
"useptfilletedges", cookparms.
getCookTime(), 0);
1453 if (!thissop)
return getPointFilletEdges();
1455 OP_Utils::evalOpParm(result, thissop,
"ptfilletedges", cookparms.
getCookTime(), 0);
1463 if (!thissop)
return getUseEdgeFilletGroup();
1465 OP_Utils::evalOpParm(result, thissop,
"useedgefilletgroup", cookparms.
getCookTime(), 0);
1473 if (!thissop)
return getEdgeFilletGroup();
1475 OP_Utils::evalOpParm(result, thissop,
"edgeprims", cookparms.
getCookTime(), 0);
1483 if (!thissop)
return getUseOffsetEdges();
1485 OP_Utils::evalOpParm(result, thissop,
"useoffsetedges", cookparms.
getCookTime(), 0);
1493 if (!thissop)
return getOffsetEdges();
1495 OP_Utils::evalOpParm(result, thissop,
"offsetedges", cookparms.
getCookTime(), 0);
1503 if (!thissop)
return getUseOffsetPoints();
1505 OP_Utils::evalOpParm(result, thissop,
"useoffsetpoints", cookparms.
getCookTime(), 0);
1513 if (!thissop)
return getOffsetPoints();
1515 OP_Utils::evalOpParm(result, thissop,
"offsetpoints", cookparms.
getCookTime(), 0);
1523 if (!thissop)
return getUseMergedPoints();
1525 OP_Utils::evalOpParm(result, thissop,
"usemergedpoints", cookparms.
getCookTime(), 0);
1533 if (!thissop)
return getMergedPoints();
1535 OP_Utils::evalOpParm(result, thissop,
"mergedpoints", cookparms.
getCookTime(), 0);
1543 if (!thissop)
return getProfileSampling();
1545 OP_Utils::evalOpParm(result, thissop,
"profilesampling", cookparms.
getCookTime(), 0);
1553 if (!thissop)
return getDivisions();
1555 OP_Utils::evalOpParm(result, thissop,
"divisions", cookparms.
getCookTime(), 0);
1562 bool myIgnoreBridges;
1563 bool myIgnoreShared;
1564 bool myIgnoreFlatEdges;
1565 bool myIgnoreFlatPoints;
1566 bool myIgnoreInlinePoints;
1569 int64 myUseOffsetScale;
1574 bool myDetectCollisions;
1575 bool myRestrictSlides;
1577 bool myStopAtSlideEnd;
1578 bool myStopAtPinches;
1580 bool myStopAtCollisions;
1581 int64 myFilletShape;
1583 int64 myProfileSource;
1585 bool myReverseProfile;
1586 bool mySymmetrizeProfile;
1590 bool myUsePointFilletPolys;
1592 bool myUsePointFilletEdges;
1594 bool myUseEdgeFilletGroup;
1596 bool myUseOffsetEdges;
1598 bool myUseOffsetPoints;
1600 bool myUseMergedPoints;
1602 int64 myProfileSampling;
void setIgnoreFlatPoints(bool val)
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
FilletShape opFilletShape(const SOP_NodeVerb::CookParms &cookparms) const
void copyFrom(const OP_NodeParms *src) override
void setSlideEdges(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_Vector2I &v)
bool getUsePointFilletEdges() const
void setSymmetrizeProfile(bool val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
static void saveData(std::ostream &os, UT_Matrix4D v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
fpreal64 opFlatAngle(const SOP_NodeVerb::CookParms &cookparms) const
SOP_Node * getNode() const
static void loadData(UT_IStream &is, bool &v)
bool operator==(const SOP_PolyBevel_3_0Parms &src) const
bool getIgnoreFlatEdges() const
int64 getDivisions() const
void setConvexity(fpreal64 val)
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
const UT_StringHolder & getProfileDirection() const
void setSliding(Sliding val)
bool opUseEdgeFilletGroup(const SOP_NodeVerb::CookParms &cookparms) const
T clampMaxValue(fpreal maxvalue, const T &src) const
static void loadData(UT_IStream &is, UT_Vector2D &v)
bool operator!=(const SOP_PolyBevel_3_0Parms &src) const
bool opRestrictSlides(const SOP_NodeVerb::CookParms &cookparms) const
ProfileSource getProfileSource() const
void setIgnoreShared(bool val)
void setOffsetPoints(const UT_StringHolder &val)
bool opDetectCollisions(const SOP_NodeVerb::CookParms &cookparms) const
void setMergedPoints(const UT_StringHolder &val)
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
bool getStopAtCollisions() const
void setProfileDirection(const UT_StringHolder &val)
bool opUsePointFilletEdges(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getPointFilletPolys() const
void setUseMergedPoints(bool val)
FilletShape getFilletShape() const
const OP_Context & context() const
void setProfileRamp(UT_SharedPtr< UT_Ramp > val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
void setGroup(const UT_StringHolder &val)
constexpr SYS_FORCE_INLINE T & z() noexcept
void setDetectCollisions(bool val)
fpreal64 opPinchAngle(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Matrix4D &v)
SYS_FORCE_INLINE const char * buffer() const
GroupType opGroupType(const SOP_NodeVerb::CookParms &cookparms) const
void setAsymTol(fpreal64 val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
An output stream object that owns its own string buffer storage.
bool opIgnoreShared(const SOP_NodeVerb::CookParms &cookparms) const
ParmType getNestParmType(TempIndex fieldnum) const override
bool getStopAtPinches() const
GroupType getGroupType() const
bool opUsePointFilletPolys(const SOP_NodeVerb::CookParms &cookparms) const
**But if you need a result
bool opIgnoreBridges(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector4I &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
T clampMinValue(fpreal minvalue, const T &src) const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
static void saveData(std::ostream &os, fpreal64 v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
void setDivisions(int64 val)
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
bool opUseOffsetEdges(const SOP_NodeVerb::CookParms &cookparms) const
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
static void loadData(UT_IStream &is, fpreal64 &v)
void setUsePointFilletEdges(bool val)
const UT_StringHolder & getSlideEdges() const
constexpr SYS_FORCE_INLINE T & x() noexcept
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
bool opIgnoreFlatEdges(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getEdgeFilletGroup() const
UT_StringHolder opOffsetEdges(const SOP_NodeVerb::CookParms &cookparms) const
void setIgnoreBridges(bool val)
void setReverseProfile(bool val)
void save(std::ostream &os) const
constexpr SYS_FORCE_INLINE T & x() noexcept
void setProfileSampling(ProfileSampling val)
bool opIgnoreInlinePoints(const SOP_NodeVerb::CookParms &cookparms) const
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
void setOffsetEdges(const UT_StringHolder &val)
void setIgnoreFlatEdges(bool val)
bool opUseMergedPoints(const SOP_NodeVerb::CookParms &cookparms) const
void setProfileScale(fpreal64 val)
exint getNestNumParms(TempIndex idx) const override
static void saveData(std::ostream &os, UT_Matrix3D v)
bool getUseOffsetPoints() const
void setProfileSource(ProfileSource val)
void setStopAtPinches(bool val)
UT_StringHolder opPointScaleAttr(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
UT_StringHolder opMergedPoints(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector3D &v)
constexpr SYS_FORCE_INLINE T & z() noexcept
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
fpreal64 getPinchAngle() const
UT_StringHolder opPointFilletPolys(const SOP_NodeVerb::CookParms &cookparms) const
bool getIgnoreBridges() const
const OP_GraphProxy * graph() const
fpreal64 getFlatBoost() const
void setUseOffsetEdges(bool val)
ProfileSampling getProfileSampling() const
UseOffsetScale opUseOffsetScale(const SOP_NodeVerb::CookParms &cookparms) const
bool getIgnoreShared() const
void setPinchAngle(fpreal64 val)
bool opUseOffsetPoints(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
void setGroupType(GroupType val)
void setPointScaleAttr(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_Matrix3D &v)
bool getSymmetrizeProfile() const
void setPointFilletEdges(const UT_StringHolder &val)
const UT_StringHolder & getGroup() const
bool getStopAtSlideEnd() const
bool getIgnoreFlatPoints() const
UT_StringHolder opProfileDirection(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opConvexity(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
void setEdgeFilletGroup(const UT_StringHolder &val)
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
static void loadData(UT_IStream &is, int64 &v)
const UT_StringHolder & getPointScaleAttr() const
UT_SharedPtr< UT_Ramp > opProfileRamp(const SOP_NodeVerb::CookParms &cookparms) const
void setFlatAngle(fpreal64 val)
static void saveData(std::ostream &os, UT_Vector3D v)
Limit opLimit(const SOP_NodeVerb::CookParms &cookparms) const
void setFlatBoost(fpreal64 val)
bool getUsePointFilletPolys() const
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
fpreal64 opAsymTol(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opOffset(const SOP_NodeVerb::CookParms &cookparms) const
void setPointFilletPolys(const UT_StringHolder &val)
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
static void saveData(std::ostream &os, bool v)
static void loadData(UT_IStream &is, UT_StringHolder &v)
void saveBinary(std::ostream &os) const
Save string to binary stream.
void setOffset(fpreal64 val)
static void loadData(UT_IStream &is, UT_Vector4D &v)
UT_StringHolder opOffsetPoints(const SOP_NodeVerb::CookParms &cookparms) const
void setFilletShape(FilletShape val)
GT_API const UT_StringHolder version
fpreal64 getAsymTol() const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
void setUseOffsetPoints(bool val)
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
void setUseOffsetScale(UseOffsetScale val)
void setStopAtSlideEnd(bool val)
const UT_StringHolder & getMergedPoints() const
bool opStopAtPinches(const SOP_NodeVerb::CookParms &cookparms) const
ProfileSampling opProfileSampling(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getOffset() const
static void loadData(UT_IStream &is, UT_Vector3I &v)
bool getDetectCollisions() const
void setIgnoreInlinePoints(bool val)
void coerceValue(T &result, const S &src) const
void setUsePointFilletPolys(bool val)
bool opStopAtSlideEnd(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getOffsetPoints() const
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
bool opStopAtCollisions(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
fpreal64 getFlatAngle() const
DEP_MicroNode * depnode() const
bool opIgnoreFlatPoints(const SOP_NodeVerb::CookParms &cookparms) const
bool getReverseProfile() const
Utility class for containing a color ramp.
constexpr SYS_FORCE_INLINE T & w() noexcept
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
fpreal64 opProfileScale(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getOffsetEdges() const
UT_StringHolder opEdgeFilletGroup(const SOP_NodeVerb::CookParms &cookparms) const
bool opSymmetrizeProfile(const SOP_NodeVerb::CookParms &cookparms) const
void setUseEdgeFilletGroup(bool val)
fpreal getCookTime() const
void setRestrictSlides(bool val)
UT_StringHolder opSlideEdges(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opPointFilletEdges(const SOP_NodeVerb::CookParms &cookparms) const
UT_SharedPtr< UT_Ramp > getProfileRamp() const
ProfileSource opProfileSource(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getConvexity() const
void setStopAtCollisions(bool val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
const char * findChar(int c) const
bool isParmColorRamp(exint idx) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
bool getIgnoreInlinePoints() const
bool opReverseProfile(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Vector4D v)
bool getUseEdgeFilletGroup() const
Sliding opSliding(const SOP_NodeVerb::CookParms &cookparms) const
bool load(UT_IStream &is)
fpreal64 opFlatBoost(const SOP_NodeVerb::CookParms &cookparms) const
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
constexpr SYS_FORCE_INLINE T & y() noexcept
static void saveData(std::ostream &os, UT_StringHolder s)
static void saveData(std::ostream &os, int64 v)
const UT_StringHolder & getPointFilletEdges() const
void loadFromOpSubclass(const LoadParms &loadparms) override
const char * getNestParmName(TempIndex fieldnum) const override
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
bool getRestrictSlides() const
UseOffsetScale getUseOffsetScale() const
int64 opDivisions(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & y() noexcept
SYS_FORCE_INLINE bool isstring() const
bool getUseOffsetEdges() const
static void saveData(std::ostream &os, UT_Matrix2D v)
Sliding getSliding() const
OP_NodeParms & operator=(const OP_NodeParms &)=default
static void saveData(std::ostream &os, UT_Vector2D v)
bool getUseMergedPoints() const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
constexpr SYS_FORCE_INLINE T & x() noexcept
fpreal64 getProfileScale() const