23 namespace SOP_TangentFieldEnums
34 using namespace UT::Literal;
51 using namespace UT::Literal;
68 using namespace UT::Literal;
86 using namespace UT::Literal;
105 using namespace UT::Literal;
106 switch (enum_value) {
124 using namespace UT::Literal;
125 switch (enum_value) {
147 myGlobalWeight = 0.1;
148 myGlobalMask =
""_UTsh;
150 myLocalCurvatureWeight = 1;
151 myCurvatureMaskAttrib =
""_UTsh;
152 myCurvatureRotation = 0;
155 myLocalBoundaryWeight = 1;
156 myBoundaryMaskAttrib =
""_UTsh;
157 myBoundaryRotation = 0;
160 myLocalGuideWeight = 1;
161 myGuideMaskAttrib =
""_UTsh;
162 myGuideAttrib =
""_UTsh;
163 myFieldAttrib =
"field"_UTsh;
164 myNormalizeField =
true;
166 myUseSingularGroup =
false;
167 mySingularGroup =
"singular"_UTsh;
168 myUsePositiveSingularGroup =
false;
169 myPositiveSingularGroup =
"positive_singular"_UTsh;
170 myUseNegativeSingularGroup =
false;
171 myNegativeSingularGroup =
"negative_singular"_UTsh;
172 myUseDiscontinuitiesGroup =
false;
173 myDiscontinuities =
"discontinuities"_UTsh;
175 myFieldscalemode = 0;
177 myShowSingularities =
true;
178 myShowGuides =
false;
179 myGuidescalemode = 0;
193 if (myGroup != src.myGroup)
return false;
194 if (myCarrier != src.myCarrier)
return false;
195 if (myDirections != src.myDirections)
return false;
196 if (myRotation != src.myRotation)
return false;
197 if (myGlobalWeight != src.myGlobalWeight)
return false;
198 if (myGlobalMask != src.myGlobalMask)
return false;
199 if (myCurvature != src.myCurvature)
return false;
200 if (myLocalCurvatureWeight != src.myLocalCurvatureWeight)
return false;
201 if (myCurvatureMaskAttrib != src.myCurvatureMaskAttrib)
return false;
202 if (myCurvatureRotation != src.myCurvatureRotation)
return false;
203 if (myBoundary != src.myBoundary)
return false;
204 if (myBoundaryMode != src.myBoundaryMode)
return false;
205 if (myLocalBoundaryWeight != src.myLocalBoundaryWeight)
return false;
206 if (myBoundaryMaskAttrib != src.myBoundaryMaskAttrib)
return false;
207 if (myBoundaryRotation != src.myBoundaryRotation)
return false;
208 if (myGuide != src.myGuide)
return false;
209 if (myGuideMode != src.myGuideMode)
return false;
210 if (myLocalGuideWeight != src.myLocalGuideWeight)
return false;
211 if (myGuideMaskAttrib != src.myGuideMaskAttrib)
return false;
212 if (myGuideAttrib != src.myGuideAttrib)
return false;
213 if (myFieldAttrib != src.myFieldAttrib)
return false;
214 if (myNormalizeField != src.myNormalizeField)
return false;
215 if (myOutputMode != src.myOutputMode)
return false;
216 if (myUseSingularGroup != src.myUseSingularGroup)
return false;
217 if (mySingularGroup != src.mySingularGroup)
return false;
218 if (myUsePositiveSingularGroup != src.myUsePositiveSingularGroup)
return false;
219 if (myPositiveSingularGroup != src.myPositiveSingularGroup)
return false;
220 if (myUseNegativeSingularGroup != src.myUseNegativeSingularGroup)
return false;
221 if (myNegativeSingularGroup != src.myNegativeSingularGroup)
return false;
222 if (myUseDiscontinuitiesGroup != src.myUseDiscontinuitiesGroup)
return false;
223 if (myDiscontinuities != src.myDiscontinuities)
return false;
224 if (myShowField != src.myShowField)
return false;
225 if (myFieldscalemode != src.myFieldscalemode)
return false;
226 if (myFieldscale != src.myFieldscale)
return false;
227 if (myShowSingularities != src.myShowSingularities)
return false;
228 if (myShowGuides != src.myShowGuides)
return false;
229 if (myGuidescalemode != src.myGuidescalemode)
return false;
230 if (myGuidescale != src.myGuidescale)
return false;
251 graph->
evalOpParm(myGroup, nodeidx,
"group", time, 0);
254 graph->
evalOpParm(myCarrier, nodeidx,
"carrier", time, 0);
257 graph->
evalOpParm(myDirections, nodeidx,
"directions", time, 0);
260 graph->
evalOpParm(myRotation, nodeidx,
"rotation", time, 0);
261 myGlobalWeight = 0.1;
263 graph->
evalOpParm(myGlobalWeight, nodeidx,
"globalweight", time, 0);
264 myGlobalMask =
""_UTsh;
266 graph->
evalOpParm(myGlobalMask, nodeidx,
"globalmask", time, 0);
268 if (
true && ( (
true&&!(((
int64(getDirections())==1)))) ) )
269 graph->
evalOpParm(myCurvature, nodeidx,
"curvature", time, 0);
270 myLocalCurvatureWeight = 1;
271 if (
true && ( (
true&&!(((getCurvature()==0))||((
int64(getDirections())==1)))) ) )
272 graph->
evalOpParm(myLocalCurvatureWeight, nodeidx,
"localcurvatureweight", time, 0);
273 myCurvatureMaskAttrib =
""_UTsh;
274 if (
true && ( (
true&&!(((getCurvature()==0))||((
int64(getDirections())==1)))) ) )
275 graph->
evalOpParm(myCurvatureMaskAttrib, nodeidx,
"curvaturemaskattrib", time, 0);
276 myCurvatureRotation = 0;
277 if (
true && ( (
true&&!(((getCurvature()==0))||((
int64(getDirections())==1)))) ) )
278 graph->
evalOpParm(myCurvatureRotation, nodeidx,
"curvaturerotation", time, 0);
281 graph->
evalOpParm(myBoundary, nodeidx,
"boundary", time, 0);
283 if (
true && ( (
true&&!(((getBoundary()==0)))) ) )
284 graph->
evalOpParm(myBoundaryMode, nodeidx,
"boundarymode", time, 0);
285 myLocalBoundaryWeight = 1;
286 if (
true && ( (
true&&!(((getBoundary()==0)))) ) )
287 graph->
evalOpParm(myLocalBoundaryWeight, nodeidx,
"localboundaryweight", time, 0);
288 myBoundaryMaskAttrib =
""_UTsh;
289 if (
true && ( (
true&&!(((getBoundary()==0)))) ) )
290 graph->
evalOpParm(myBoundaryMaskAttrib, nodeidx,
"boundarymaskattrib", time, 0);
291 myBoundaryRotation = 0;
292 if (
true && ( (
true&&!(((getBoundary()==0)))) ) )
293 graph->
evalOpParm(myBoundaryRotation, nodeidx,
"boundaryrotation", time, 0);
296 graph->
evalOpParm(myGuide, nodeidx,
"guide", time, 0);
298 if (
true && ( (
true&&!(((getGuide()==0)))) ) )
299 graph->
evalOpParm(myGuideMode, nodeidx,
"guidemode", time, 0);
300 myLocalGuideWeight = 1;
301 if (
true && ( (
true&&!(((getGuide()==0)))) ) )
302 graph->
evalOpParm(myLocalGuideWeight, nodeidx,
"localguideweight", time, 0);
303 myGuideMaskAttrib =
""_UTsh;
304 if (
true && ( (
true&&!(((getGuide()==0)))) ) )
305 graph->
evalOpParm(myGuideMaskAttrib, nodeidx,
"guidemaskattrib", time, 0);
306 myGuideAttrib =
""_UTsh;
307 if (
true && ( (
true&&!(((getGuide()==0)))) ) )
308 graph->
evalOpParm(myGuideAttrib, nodeidx,
"guideattrib", time, 0);
309 myFieldAttrib =
"field"_UTsh;
311 graph->
evalOpParm(myFieldAttrib, nodeidx,
"fieldattrib", time, 0);
312 myNormalizeField =
true;
314 graph->
evalOpParm(myNormalizeField, nodeidx,
"normalizefield", time, 0);
316 if (
true && ( (
true&&!(((
int64(getDirections())==1)))) ) )
317 graph->
evalOpParm(myOutputMode, nodeidx,
"outputmode", time, 0);
318 myUseSingularGroup =
false;
320 graph->
evalOpParm(myUseSingularGroup, nodeidx,
"usesingulargroup", time, 0);
321 mySingularGroup =
"singular"_UTsh;
322 if (
true && ( (
true&&!(((getUseSingularGroup()==0)))) ) )
323 graph->
evalOpParm(mySingularGroup, nodeidx,
"singulargroup", time, 0);
324 myUsePositiveSingularGroup =
false;
326 graph->
evalOpParm(myUsePositiveSingularGroup, nodeidx,
"usepositivesingulargroup", time, 0);
327 myPositiveSingularGroup =
"positive_singular"_UTsh;
328 if (
true && ( (
true&&!(((getUsePositiveSingularGroup()==0)))) ) )
329 graph->
evalOpParm(myPositiveSingularGroup, nodeidx,
"positivesingulargroup", time, 0);
330 myUseNegativeSingularGroup =
false;
332 graph->
evalOpParm(myUseNegativeSingularGroup, nodeidx,
"usenegativesingulargroup", time, 0);
333 myNegativeSingularGroup =
"negative_singular"_UTsh;
334 if (
true && ( (
true&&!(((getUseNegativeSingularGroup()==0)))) ) )
335 graph->
evalOpParm(myNegativeSingularGroup, nodeidx,
"negativesingulargroup", time, 0);
336 myUseDiscontinuitiesGroup =
false;
338 graph->
evalOpParm(myUseDiscontinuitiesGroup, nodeidx,
"usediscontinuitiesgroup", time, 0);
339 myDiscontinuities =
"discontinuities"_UTsh;
340 if (
true && ( (
true&&!(((getUseDiscontinuitiesGroup()==0)))) ) )
341 graph->
evalOpParm(myDiscontinuities, nodeidx,
"discontinuities", time, 0);
344 graph->
evalOpParm(myShowField, nodeidx,
"showfield", time, 0);
345 myFieldscalemode = 0;
346 if (
true && ( (
true&&!(((getShowField()==0)))) ) )
347 graph->
evalOpParm(myFieldscalemode, nodeidx,
"fieldscalemode", time, 0);
349 if (
true && ( (
true&&!(((
int64(getFieldscalemode())==1))||((getShowField()==0)))) ) )
350 graph->
evalOpParm(myFieldscale, nodeidx,
"fieldscale", time, 0);
351 myShowSingularities =
true;
353 graph->
evalOpParm(myShowSingularities, nodeidx,
"showsingularities", time, 0);
354 myShowGuides =
false;
356 graph->
evalOpParm(myShowGuides, nodeidx,
"showguides", time, 0);
357 myGuidescalemode = 0;
358 if (
true && ( (
true&&!(((getShowGuides()==0)))) ) )
359 graph->
evalOpParm(myGuidescalemode, nodeidx,
"guidescalemode", time, 0);
361 if (
true && ( (
true&&!(((getShowGuides()==0))||((
int64(getGuidescalemode())==1)))) ) )
362 graph->
evalOpParm(myGuidescale, nodeidx,
"guidescale", time, 0);
378 template <
typename T>
385 if (idx.
size() != instance.
size()+1)
390 coerceValue(value, myGroup);
393 coerceValue(value, myCarrier);
396 coerceValue(value, myDirections);
399 coerceValue(value, myRotation);
402 coerceValue(value, myGlobalWeight);
405 coerceValue(value, myGlobalMask);
408 coerceValue(value, myCurvature);
411 coerceValue(value, myLocalCurvatureWeight);
414 coerceValue(value, myCurvatureMaskAttrib);
417 coerceValue(value, myCurvatureRotation);
420 coerceValue(value, myBoundary);
423 coerceValue(value, myBoundaryMode);
426 coerceValue(value, myLocalBoundaryWeight);
429 coerceValue(value, myBoundaryMaskAttrib);
432 coerceValue(value, myBoundaryRotation);
435 coerceValue(value, myGuide);
438 coerceValue(value, myGuideMode);
441 coerceValue(value, myLocalGuideWeight);
444 coerceValue(value, myGuideMaskAttrib);
447 coerceValue(value, myGuideAttrib);
450 coerceValue(value, myFieldAttrib);
453 coerceValue(value, myNormalizeField);
456 coerceValue(value, myOutputMode);
459 coerceValue(value, myUseSingularGroup);
462 coerceValue(value, mySingularGroup);
465 coerceValue(value, myUsePositiveSingularGroup);
468 coerceValue(value, myPositiveSingularGroup);
471 coerceValue(value, myUseNegativeSingularGroup);
474 coerceValue(value, myNegativeSingularGroup);
477 coerceValue(value, myUseDiscontinuitiesGroup);
480 coerceValue(value, myDiscontinuities);
483 coerceValue(value, myShowField);
486 coerceValue(value, myFieldscalemode);
489 coerceValue(value, myFieldscale);
492 coerceValue(value, myShowSingularities);
495 coerceValue(value, myShowGuides);
498 coerceValue(value, myGuidescalemode);
501 coerceValue(value, myGuidescale);
517 { doGetParmValue(idx, instance, value); }
519 { doGetParmValue(idx, instance, value); }
521 { doGetParmValue(idx, instance, value); }
523 { doGetParmValue(idx, instance, value); }
525 { doGetParmValue(idx, instance, value); }
527 { doGetParmValue(idx, instance, value); }
529 { doGetParmValue(idx, instance, value); }
531 { doGetParmValue(idx, instance, value); }
533 { doGetParmValue(idx, instance, value); }
535 { doGetParmValue(idx, instance, value); }
537 { doGetParmValue(idx, instance, value); }
539 template <
typename T>
546 if (idx.
size() != instance.
size()+1)
551 coerceValue(myGroup, ( ( value ) ));
554 coerceValue(myCarrier, clampMinValue(0, clampMaxValue(1, value ) ));
557 coerceValue(myDirections, ( clampMaxValue(8, value ) ));
560 coerceValue(myRotation, ( ( value ) ));
563 coerceValue(myGlobalWeight, clampMinValue(0, ( value ) ));
566 coerceValue(myGlobalMask, ( ( value ) ));
569 coerceValue(myCurvature, ( ( value ) ));
572 coerceValue(myLocalCurvatureWeight, clampMinValue(0, ( value ) ));
575 coerceValue(myCurvatureMaskAttrib, ( ( value ) ));
578 coerceValue(myCurvatureRotation, ( ( value ) ));
581 coerceValue(myBoundary, ( ( value ) ));
584 coerceValue(myBoundaryMode, clampMinValue(0, clampMaxValue(1, value ) ));
587 coerceValue(myLocalBoundaryWeight, clampMinValue(0, ( value ) ));
590 coerceValue(myBoundaryMaskAttrib, ( ( value ) ));
593 coerceValue(myBoundaryRotation, ( ( value ) ));
596 coerceValue(myGuide, ( ( value ) ));
599 coerceValue(myGuideMode, clampMinValue(0, clampMaxValue(1, value ) ));
602 coerceValue(myLocalGuideWeight, clampMinValue(0, ( value ) ));
605 coerceValue(myGuideMaskAttrib, ( ( value ) ));
608 coerceValue(myGuideAttrib, ( ( value ) ));
611 coerceValue(myFieldAttrib, ( ( value ) ));
614 coerceValue(myNormalizeField, ( ( value ) ));
617 coerceValue(myOutputMode, clampMinValue(0, clampMaxValue(2, value ) ));
620 coerceValue(myUseSingularGroup, ( ( value ) ));
623 coerceValue(mySingularGroup, ( ( value ) ));
626 coerceValue(myUsePositiveSingularGroup, ( ( value ) ));
629 coerceValue(myPositiveSingularGroup, ( ( value ) ));
632 coerceValue(myUseNegativeSingularGroup, ( ( value ) ));
635 coerceValue(myNegativeSingularGroup, ( ( value ) ));
638 coerceValue(myUseDiscontinuitiesGroup, ( ( value ) ));
641 coerceValue(myDiscontinuities, ( ( value ) ));
644 coerceValue(myShowField, ( ( value ) ));
647 coerceValue(myFieldscalemode, clampMinValue(0, clampMaxValue(2, value ) ));
650 coerceValue(myFieldscale, clampMinValue(0, ( value ) ));
653 coerceValue(myShowSingularities, ( ( value ) ));
656 coerceValue(myShowGuides, ( ( value ) ));
659 coerceValue(myGuidescalemode, clampMinValue(0, clampMaxValue(2, value ) ));
662 coerceValue(myGuidescale, clampMinValue(0, ( value ) ));
669 { doSetParmValue(idx, instance, value); }
671 { doSetParmValue(idx, instance, value); }
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); }
705 if (fieldnum.
size() < 1)
718 return "globalweight";
724 return "localcurvatureweight";
726 return "curvaturemaskattrib";
728 return "curvaturerotation";
732 return "boundarymode";
734 return "localboundaryweight";
736 return "boundarymaskattrib";
738 return "boundaryrotation";
744 return "localguideweight";
746 return "guidemaskattrib";
748 return "guideattrib";
750 return "fieldattrib";
752 return "normalizefield";
756 return "usesingulargroup";
758 return "singulargroup";
760 return "usepositivesingulargroup";
762 return "positivesingulargroup";
764 return "usenegativesingulargroup";
766 return "negativesingulargroup";
768 return "usediscontinuitiesgroup";
770 return "discontinuities";
774 return "fieldscalemode";
778 return "showsingularities";
782 return "guidescalemode";
792 if (fieldnum.
size() < 1)
793 return PARM_UNSUPPORTED;
874 return PARM_UNSUPPORTED;
910 loadData(is, rampdata);
928 int typelen = colon - data.
buffer();
942 {
int64 iv =
v; UTwrite(os, &iv); }
944 { UTwrite<fpreal64>(os, &
v); }
946 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
948 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
949 UTwrite<fpreal64>(os, &v.
z()); }
951 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
952 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
964 if (s) s->save(ostr);
966 saveData(os, result);
973 ostr << s->getDataTypeToken();
978 saveData(os, result);
982 void save(std::ostream &os)
const
986 saveData(os, myGroup);
987 saveData(os, myCarrier);
988 saveData(os, myDirections);
989 saveData(os, myRotation);
990 saveData(os, myGlobalWeight);
991 saveData(os, myGlobalMask);
992 saveData(os, myCurvature);
993 saveData(os, myLocalCurvatureWeight);
994 saveData(os, myCurvatureMaskAttrib);
995 saveData(os, myCurvatureRotation);
996 saveData(os, myBoundary);
997 saveData(os, myBoundaryMode);
998 saveData(os, myLocalBoundaryWeight);
999 saveData(os, myBoundaryMaskAttrib);
1000 saveData(os, myBoundaryRotation);
1001 saveData(os, myGuide);
1002 saveData(os, myGuideMode);
1003 saveData(os, myLocalGuideWeight);
1004 saveData(os, myGuideMaskAttrib);
1005 saveData(os, myGuideAttrib);
1006 saveData(os, myFieldAttrib);
1007 saveData(os, myNormalizeField);
1008 saveData(os, myOutputMode);
1009 saveData(os, myUseSingularGroup);
1010 saveData(os, mySingularGroup);
1011 saveData(os, myUsePositiveSingularGroup);
1012 saveData(os, myPositiveSingularGroup);
1013 saveData(os, myUseNegativeSingularGroup);
1014 saveData(os, myNegativeSingularGroup);
1015 saveData(os, myUseDiscontinuitiesGroup);
1016 saveData(os, myDiscontinuities);
1017 saveData(os, myShowField);
1018 saveData(os, myFieldscalemode);
1019 saveData(os, myFieldscale);
1020 saveData(os, myShowSingularities);
1021 saveData(os, myShowGuides);
1022 saveData(os, myGuidescalemode);
1023 saveData(os, myGuidescale);
1036 loadData(is, myGroup);
1037 loadData(is, myCarrier);
1038 loadData(is, myDirections);
1039 loadData(is, myRotation);
1040 loadData(is, myGlobalWeight);
1041 loadData(is, myGlobalMask);
1042 loadData(is, myCurvature);
1043 loadData(is, myLocalCurvatureWeight);
1044 loadData(is, myCurvatureMaskAttrib);
1045 loadData(is, myCurvatureRotation);
1046 loadData(is, myBoundary);
1047 loadData(is, myBoundaryMode);
1048 loadData(is, myLocalBoundaryWeight);
1049 loadData(is, myBoundaryMaskAttrib);
1050 loadData(is, myBoundaryRotation);
1051 loadData(is, myGuide);
1052 loadData(is, myGuideMode);
1053 loadData(is, myLocalGuideWeight);
1054 loadData(is, myGuideMaskAttrib);
1055 loadData(is, myGuideAttrib);
1056 loadData(is, myFieldAttrib);
1057 loadData(is, myNormalizeField);
1058 loadData(is, myOutputMode);
1059 loadData(is, myUseSingularGroup);
1060 loadData(is, mySingularGroup);
1061 loadData(is, myUsePositiveSingularGroup);
1062 loadData(is, myPositiveSingularGroup);
1063 loadData(is, myUseNegativeSingularGroup);
1064 loadData(is, myNegativeSingularGroup);
1065 loadData(is, myUseDiscontinuitiesGroup);
1066 loadData(is, myDiscontinuities);
1067 loadData(is, myShowField);
1068 loadData(is, myFieldscalemode);
1069 loadData(is, myFieldscale);
1070 loadData(is, myShowSingularities);
1071 loadData(is, myShowGuides);
1072 loadData(is, myGuidescalemode);
1073 loadData(is, myGuidescale);
1083 if (!thissop)
return getGroup();
1085 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
1093 if (!thissop)
return getCarrier();
1095 OP_Utils::evalOpParm(result, thissop,
"carrier", cookparms.
getCookTime(), 0);
1103 if (!thissop)
return getDirections();
1105 OP_Utils::evalOpParm(result, thissop,
"directions", cookparms.
getCookTime(), 0);
1113 if (!thissop)
return getRotation();
1115 OP_Utils::evalOpParm(result, thissop,
"rotation", cookparms.
getCookTime(), 0);
1123 if (!thissop)
return getGlobalWeight();
1125 OP_Utils::evalOpParm(result, thissop,
"globalweight", cookparms.
getCookTime(), 0);
1133 if (!thissop)
return getGlobalMask();
1135 OP_Utils::evalOpParm(result, thissop,
"globalmask", cookparms.
getCookTime(), 0);
1143 if (!thissop)
return getCurvature();
1145 OP_Utils::evalOpParm(result, thissop,
"curvature", cookparms.
getCookTime(), 0);
1153 if (!thissop)
return getLocalCurvatureWeight();
1155 OP_Utils::evalOpParm(result, thissop,
"localcurvatureweight", cookparms.
getCookTime(), 0);
1163 if (!thissop)
return getCurvatureMaskAttrib();
1165 OP_Utils::evalOpParm(result, thissop,
"curvaturemaskattrib", cookparms.
getCookTime(), 0);
1173 if (!thissop)
return getCurvatureRotation();
1175 OP_Utils::evalOpParm(result, thissop,
"curvaturerotation", cookparms.
getCookTime(), 0);
1183 if (!thissop)
return getBoundary();
1185 OP_Utils::evalOpParm(result, thissop,
"boundary", cookparms.
getCookTime(), 0);
1193 if (!thissop)
return getBoundaryMode();
1195 OP_Utils::evalOpParm(result, thissop,
"boundarymode", cookparms.
getCookTime(), 0);
1203 if (!thissop)
return getLocalBoundaryWeight();
1205 OP_Utils::evalOpParm(result, thissop,
"localboundaryweight", cookparms.
getCookTime(), 0);
1213 if (!thissop)
return getBoundaryMaskAttrib();
1215 OP_Utils::evalOpParm(result, thissop,
"boundarymaskattrib", cookparms.
getCookTime(), 0);
1223 if (!thissop)
return getBoundaryRotation();
1225 OP_Utils::evalOpParm(result, thissop,
"boundaryrotation", cookparms.
getCookTime(), 0);
1233 if (!thissop)
return getGuide();
1235 OP_Utils::evalOpParm(result, thissop,
"guide", cookparms.
getCookTime(), 0);
1243 if (!thissop)
return getGuideMode();
1245 OP_Utils::evalOpParm(result, thissop,
"guidemode", cookparms.
getCookTime(), 0);
1253 if (!thissop)
return getLocalGuideWeight();
1255 OP_Utils::evalOpParm(result, thissop,
"localguideweight", cookparms.
getCookTime(), 0);
1263 if (!thissop)
return getGuideMaskAttrib();
1265 OP_Utils::evalOpParm(result, thissop,
"guidemaskattrib", cookparms.
getCookTime(), 0);
1273 if (!thissop)
return getGuideAttrib();
1275 OP_Utils::evalOpParm(result, thissop,
"guideattrib", cookparms.
getCookTime(), 0);
1283 if (!thissop)
return getFieldAttrib();
1285 OP_Utils::evalOpParm(result, thissop,
"fieldattrib", cookparms.
getCookTime(), 0);
1293 if (!thissop)
return getNormalizeField();
1295 OP_Utils::evalOpParm(result, thissop,
"normalizefield", cookparms.
getCookTime(), 0);
1303 if (!thissop)
return getOutputMode();
1305 OP_Utils::evalOpParm(result, thissop,
"outputmode", cookparms.
getCookTime(), 0);
1313 if (!thissop)
return getUseSingularGroup();
1315 OP_Utils::evalOpParm(result, thissop,
"usesingulargroup", cookparms.
getCookTime(), 0);
1323 if (!thissop)
return getSingularGroup();
1325 OP_Utils::evalOpParm(result, thissop,
"singulargroup", cookparms.
getCookTime(), 0);
1333 if (!thissop)
return getUsePositiveSingularGroup();
1335 OP_Utils::evalOpParm(result, thissop,
"usepositivesingulargroup", cookparms.
getCookTime(), 0);
1343 if (!thissop)
return getPositiveSingularGroup();
1345 OP_Utils::evalOpParm(result, thissop,
"positivesingulargroup", cookparms.
getCookTime(), 0);
1353 if (!thissop)
return getUseNegativeSingularGroup();
1355 OP_Utils::evalOpParm(result, thissop,
"usenegativesingulargroup", cookparms.
getCookTime(), 0);
1363 if (!thissop)
return getNegativeSingularGroup();
1365 OP_Utils::evalOpParm(result, thissop,
"negativesingulargroup", cookparms.
getCookTime(), 0);
1373 if (!thissop)
return getUseDiscontinuitiesGroup();
1375 OP_Utils::evalOpParm(result, thissop,
"usediscontinuitiesgroup", cookparms.
getCookTime(), 0);
1383 if (!thissop)
return getDiscontinuities();
1385 OP_Utils::evalOpParm(result, thissop,
"discontinuities", cookparms.
getCookTime(), 0);
1393 if (!thissop)
return getShowField();
1395 OP_Utils::evalOpParm(result, thissop,
"showfield", cookparms.
getCookTime(), 0);
1403 if (!thissop)
return getFieldscalemode();
1405 OP_Utils::evalOpParm(result, thissop,
"fieldscalemode", cookparms.
getCookTime(), 0);
1413 if (!thissop)
return getFieldscale();
1415 OP_Utils::evalOpParm(result, thissop,
"fieldscale", cookparms.
getCookTime(), 0);
1423 if (!thissop)
return getShowSingularities();
1425 OP_Utils::evalOpParm(result, thissop,
"showsingularities", cookparms.
getCookTime(), 0);
1433 if (!thissop)
return getShowGuides();
1435 OP_Utils::evalOpParm(result, thissop,
"showguides", cookparms.
getCookTime(), 0);
1443 if (!thissop)
return getGuidescalemode();
1445 OP_Utils::evalOpParm(result, thissop,
"guidescalemode", cookparms.
getCookTime(), 0);
1453 if (!thissop)
return getGuidescale();
1455 OP_Utils::evalOpParm(result, thissop,
"guidescale", cookparms.
getCookTime(), 0);
1471 int64 myBoundaryMode;
1481 bool myNormalizeField;
1483 bool myUseSingularGroup;
1485 bool myUsePositiveSingularGroup;
1487 bool myUseNegativeSingularGroup;
1489 bool myUseDiscontinuitiesGroup;
1492 int64 myFieldscalemode;
1494 bool myShowSingularities;
1496 int64 myGuidescalemode;
void setCurvatureMaskAttrib(const UT_StringHolder &val)
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector2D &v)
void setGuideMaskAttrib(const UT_StringHolder &val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
UT_StringHolder opCurvatureMaskAttrib(const SOP_NodeVerb::CookParms &cookparms) const
bool load(UT_IStream &is)
static void loadData(UT_IStream &is, UT_Matrix4D &v)
static void loadData(UT_IStream &is, fpreal64 &v)
Guidescalemode opGuidescalemode(const SOP_NodeVerb::CookParms &cookparms) const
SOP_Node * getNode() const
bool opShowField(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getFieldAttrib() const
UT_StringHolder opFieldAttrib(const SOP_NodeVerb::CookParms &cookparms) const
bool opNormalizeField(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opGuideMaskAttrib(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getNegativeSingularGroup() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
bool opBoundary(const SOP_NodeVerb::CookParms &cookparms) const
void setLocalGuideWeight(fpreal64 val)
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
bool operator==(const SOP_TangentFieldParms &src) const
bool getUsePositiveSingularGroup() const
bool opUseSingularGroup(const SOP_NodeVerb::CookParms &cookparms) const
void setFieldscale(fpreal64 val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
const UT_StringHolder & getGuideMaskAttrib() const
static void loadData(UT_IStream &is, UT_Vector4I &v)
static void loadData(UT_IStream &is, int64 &v)
void setFieldAttrib(const UT_StringHolder &val)
fpreal64 getFieldscale() const
void setCurvatureRotation(fpreal64 val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
const OP_Context & context() const
SYS_FORCE_INLINE UT_StringHolder getToken(Carrier enum_value)
constexpr SYS_FORCE_INLINE T & z() noexcept
SYS_FORCE_INLINE const char * buffer() const
fpreal64 opFieldscale(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
An output stream object that owns its own string buffer storage.
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
static void saveData(std::ostream &os, UT_Matrix3D v)
const UT_StringHolder & getGroup() const
void setShowField(bool val)
BoundaryMode opBoundaryMode(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
UT_StringHolder opGlobalMask(const SOP_NodeVerb::CookParms &cookparms) const
**But if you need a result
void setOutputMode(OutputMode val)
bool opShowSingularities(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opCurvatureRotation(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getCurvatureMaskAttrib() const
fpreal64 getGlobalWeight() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
UT_StringHolder opDiscontinuities(const SOP_NodeVerb::CookParms &cookparms) const
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
static void saveData(std::ostream &os, UT_Matrix4D v)
void setCurvature(bool val)
void setShowGuides(bool val)
ParmType getNestParmType(TempIndex fieldnum) const override
void setFieldscalemode(Fieldscalemode val)
constexpr SYS_FORCE_INLINE T & x() noexcept
void copyFrom(const OP_NodeParms *src) override
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
void setCarrier(Carrier val)
UT_StringHolder opNegativeSingularGroup(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector2I &v)
constexpr SYS_FORCE_INLINE T & x() noexcept
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
bool getShowSingularities() const
bool opCurvature(const SOP_NodeVerb::CookParms &cookparms) const
bool getNormalizeField() const
bool getUseSingularGroup() const
void setUseDiscontinuitiesGroup(bool val)
static void saveData(std::ostream &os, UT_Vector4D v)
Carrier getCarrier() const
static void saveData(std::ostream &os, bool v)
UT_StringHolder opPositiveSingularGroup(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getGuideAttrib() const
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
void setGuideAttrib(const UT_StringHolder &val)
bool getUseDiscontinuitiesGroup() const
fpreal64 opLocalGuideWeight(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & z() noexcept
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
void setGuideMode(GuideMode val)
const OP_GraphProxy * graph() const
bool opUsePositiveSingularGroup(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getBoundaryMaskAttrib() const
bool getShowGuides() const
void setGuidescalemode(Guidescalemode val)
fpreal64 getBoundaryRotation() const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
static void loadData(UT_IStream &is, UT_Vector3I &v)
static void saveData(std::ostream &os, UT_Vector2D v)
static void loadData(UT_IStream &is, UT_Matrix3D &v)
static void saveData(std::ostream &os, int64 v)
bool isParmColorRamp(exint idx) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
void setShowSingularities(bool val)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
BoundaryMode getBoundaryMode() const
void setGuidescale(fpreal64 val)
bool opShowGuides(const SOP_NodeVerb::CookParms &cookparms) const
void setNormalizeField(bool val)
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
fpreal64 getLocalGuideWeight() const
void setRotation(fpreal64 val)
bool opUseDiscontinuitiesGroup(const SOP_NodeVerb::CookParms &cookparms) const
void saveBinary(std::ostream &os) const
Save string to binary stream.
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
fpreal64 opGlobalWeight(const SOP_NodeVerb::CookParms &cookparms) const
void loadFromOpSubclass(const LoadParms &loadparms) override
const UT_StringHolder & getPositiveSingularGroup() const
GT_API const UT_StringHolder version
static void saveData(std::ostream &os, UT_Vector3D v)
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
OutputMode opOutputMode(const SOP_NodeVerb::CookParms &cookparms) const
bool getUseNegativeSingularGroup() const
fpreal64 opBoundaryRotation(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getRotation() const
fpreal64 opGuidescale(const SOP_NodeVerb::CookParms &cookparms) const
GuideMode getGuideMode() const
fpreal64 getGuidescale() const
Fieldscalemode getFieldscalemode() const
UT_StringHolder opGuideAttrib(const SOP_NodeVerb::CookParms &cookparms) const
void setPositiveSingularGroup(const UT_StringHolder &val)
int64 getDirections() const
DEP_MicroNode * depnode() const
bool operator!=(const SOP_TangentFieldParms &src) const
fpreal64 opRotation(const SOP_NodeVerb::CookParms &cookparms) const
bool getShowField() const
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
void setGlobalWeight(fpreal64 val)
fpreal64 opLocalCurvatureWeight(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & w() noexcept
fpreal64 getLocalBoundaryWeight() const
Guidescalemode getGuidescalemode() const
UT_StringHolder opSingularGroup(const SOP_NodeVerb::CookParms &cookparms) const
void setBoundaryMaskAttrib(const UT_StringHolder &val)
void setLocalCurvatureWeight(fpreal64 val)
void setUsePositiveSingularGroup(bool val)
fpreal64 getLocalCurvatureWeight() const
void setLocalBoundaryWeight(fpreal64 val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
bool opUseNegativeSingularGroup(const SOP_NodeVerb::CookParms &cookparms) const
void setUseSingularGroup(bool val)
void setSingularGroup(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_Vector3D &v)
fpreal getCookTime() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
void setNegativeSingularGroup(const UT_StringHolder &val)
Fieldscalemode opFieldscalemode(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, fpreal64 v)
const char * getNestParmName(TempIndex fieldnum) const override
Carrier opCarrier(const SOP_NodeVerb::CookParms &cookparms) const
const char * findChar(int c) const
static void loadData(UT_IStream &is, bool &v)
void setDiscontinuities(const UT_StringHolder &val)
void setUseNegativeSingularGroup(bool val)
fpreal64 getCurvatureRotation() const
bool getCurvature() const
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
void save(std::ostream &os) const
exint getNestNumParms(TempIndex idx) const override
int64 opDirections(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_StringHolder &v)
constexpr SYS_FORCE_INLINE T & y() noexcept
OutputMode getOutputMode() const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
const UT_StringHolder & getGlobalMask() const
UT_StringHolder opBoundaryMaskAttrib(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opLocalBoundaryWeight(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector4D &v)
const UT_StringHolder & getSingularGroup() const
bool opGuide(const SOP_NodeVerb::CookParms &cookparms) const
void setGlobalMask(const UT_StringHolder &val)
static void saveData(std::ostream &os, UT_StringHolder s)
void setBoundaryRotation(fpreal64 val)
void setBoundaryMode(BoundaryMode val)
static void loadData(UT_IStream &is, UT_Matrix2D &v)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
void setBoundary(bool val)
constexpr SYS_FORCE_INLINE T & y() noexcept
void setGroup(const UT_StringHolder &val)
SYS_FORCE_INLINE bool isstring() const
void setDirections(int64 val)
GuideMode opGuideMode(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
static void saveData(std::ostream &os, UT_Matrix2D v)
const UT_StringHolder & getDiscontinuities() const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
constexpr SYS_FORCE_INLINE T & x() noexcept