HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_GuideMask.proto.h
Go to the documentation of this file.
1 /* Automagically Generated by generate_proto.py
2  * Do not Edit
3  */
4 #pragma once
5 
6 #include <SOP/SOP_API.h>
7 #include <SOP/SOP_NodeVerb.h>
8 #include <OP/OP_GraphProxy.h>
9 
10 #include <OP/OP_Utils.h>
11 #include <PRM/PRM_Parm.h>
12 #include <UT/UT_IStream.h>
13 #include <UT/UT_NTStreamUtil.h>
14 #include <UT/UT_Ramp.h>
15 #include <UT/UT_SharedPtr.h>
16 #include <UT/UT_StringHolder.h>
17 #include <UT/UT_StringStream.h>
18 #include <UT/UT_VectorTypes.h>
19 #include <UT/UT_EnvControl.h>
20 #include <SYS/SYS_Types.h>
21 
22 class DEP_MicroNode;
23 namespace SOP_GuideMaskEnums
24 {
25  enum class Grouptype
26  {
27  PRIMITIVE = 0,
28  POINT,
29  EDGE
30  };
31 
33  getToken(Grouptype enum_value)
34  {
35  using namespace UT::Literal;
36  switch (enum_value) {
37  case Grouptype::PRIMITIVE: return "primitive"_sh;
38  case Grouptype::POINT: return "point"_sh;
39  case Grouptype::EDGE: return "edge"_sh;
40  default: UT_ASSERT(false); return ""_sh;
41  }
42  }
43 
44  enum class Inputmaskoverride
45  {
46  NONE = 0,
48  SKINATTRIB,
49  TEXTURE
50  };
51 
54  {
55  using namespace UT::Literal;
56  switch (enum_value) {
57  case Inputmaskoverride::NONE: return "none"_sh;
58  case Inputmaskoverride::CURVEATTRIB: return "curveattrib"_sh;
59  case Inputmaskoverride::SKINATTRIB: return "skinattrib"_sh;
60  case Inputmaskoverride::TEXTURE: return "texture"_sh;
61  default: UT_ASSERT(false); return ""_sh;
62  }
63  }
64 
65  enum class Outattribtype
66  {
67  PRIM = 0,
68  POINT
69  };
70 
72  getToken(Outattribtype enum_value)
73  {
74  using namespace UT::Literal;
75  switch (enum_value) {
76  case Outattribtype::PRIM: return "prim"_sh;
77  case Outattribtype::POINT: return "point"_sh;
78  default: UT_ASSERT(false); return ""_sh;
79  }
80  }
81 
83  {
84  NONE = 0,
86  SKINATTRIB,
87  TEXTURE
88  };
89 
92  {
93  using namespace UT::Literal;
94  switch (enum_value) {
95  case Noisemaskamountoverride::NONE: return "none"_sh;
96  case Noisemaskamountoverride::CURVEATTRIB: return "curveattrib"_sh;
97  case Noisemaskamountoverride::SKINATTRIB: return "skinattrib"_sh;
98  case Noisemaskamountoverride::TEXTURE: return "texture"_sh;
99  default: UT_ASSERT(false); return ""_sh;
100  }
101  }
102 
104  {
105  NONE = 0,
106  CURVEATTRIB,
107  SKINATTRIB,
108  TEXTURE
109  };
110 
113  {
114  using namespace UT::Literal;
115  switch (enum_value) {
116  case Noisemaskgainoverride::NONE: return "none"_sh;
117  case Noisemaskgainoverride::CURVEATTRIB: return "curveattrib"_sh;
118  case Noisemaskgainoverride::SKINATTRIB: return "skinattrib"_sh;
119  case Noisemaskgainoverride::TEXTURE: return "texture"_sh;
120  default: UT_ASSERT(false); return ""_sh;
121  }
122  }
123 
125  {
126  NONE = 0,
127  CURVEATTRIB,
128  SKINATTRIB,
129  TEXTURE
130  };
131 
134  {
135  using namespace UT::Literal;
136  switch (enum_value) {
137  case Noisemaskbiasoverride::NONE: return "none"_sh;
138  case Noisemaskbiasoverride::CURVEATTRIB: return "curveattrib"_sh;
139  case Noisemaskbiasoverride::SKINATTRIB: return "skinattrib"_sh;
140  case Noisemaskbiasoverride::TEXTURE: return "texture"_sh;
141  default: UT_ASSERT(false); return ""_sh;
142  }
143  }
144 
146  {
147  NONE = 0,
148  CURVEATTRIB,
149  SKINATTRIB,
150  TEXTURE
151  };
152 
155  {
156  using namespace UT::Literal;
157  switch (enum_value) {
158  case Noisemaskroughoverride::NONE: return "none"_sh;
159  case Noisemaskroughoverride::CURVEATTRIB: return "curveattrib"_sh;
160  case Noisemaskroughoverride::SKINATTRIB: return "skinattrib"_sh;
161  case Noisemaskroughoverride::TEXTURE: return "texture"_sh;
162  default: UT_ASSERT(false); return ""_sh;
163  }
164  }
165 
166  enum class Lengthmode
167  {
168  LONGER = 0,
169  SAMEAS,
170  SHORTER,
171  NORMRAMP,
172  RANGERAMP
173  };
174 
176  getToken(Lengthmode enum_value)
177  {
178  using namespace UT::Literal;
179  switch (enum_value) {
180  case Lengthmode::LONGER: return "longer"_sh;
181  case Lengthmode::SAMEAS: return "sameas"_sh;
182  case Lengthmode::SHORTER: return "shorter"_sh;
183  case Lengthmode::NORMRAMP: return "normramp"_sh;
184  case Lengthmode::RANGERAMP: return "rangeramp"_sh;
185  default: UT_ASSERT(false); return ""_sh;
186  }
187  }
188 
189  enum class Lengthrefoverride
190  {
191  NONE = 0,
192  CURVEATTRIB,
193  SKINATTRIB,
194  TEXTURE
195  };
196 
199  {
200  using namespace UT::Literal;
201  switch (enum_value) {
202  case Lengthrefoverride::NONE: return "none"_sh;
203  case Lengthrefoverride::CURVEATTRIB: return "curveattrib"_sh;
204  case Lengthrefoverride::SKINATTRIB: return "skinattrib"_sh;
205  case Lengthrefoverride::TEXTURE: return "texture"_sh;
206  default: UT_ASSERT(false); return ""_sh;
207  }
208  }
209 
211  {
212  NONE = 0,
213  CURVEATTRIB,
214  SKINATTRIB,
215  TEXTURE
216  };
217 
220  {
221  using namespace UT::Literal;
222  switch (enum_value) {
223  case Lengthfalloffrangeoverride::NONE: return "none"_sh;
224  case Lengthfalloffrangeoverride::CURVEATTRIB: return "curveattrib"_sh;
225  case Lengthfalloffrangeoverride::SKINATTRIB: return "skinattrib"_sh;
226  case Lengthfalloffrangeoverride::TEXTURE: return "texture"_sh;
227  default: UT_ASSERT(false); return ""_sh;
228  }
229  }
230 
232  {
233  NONE = 0,
234  CURVEATTRIB,
235  SKINATTRIB,
236  TEXTURE
237  };
238 
241  {
242  using namespace UT::Literal;
243  switch (enum_value) {
244  case Lengthfalloffdecayoverride::NONE: return "none"_sh;
245  case Lengthfalloffdecayoverride::CURVEATTRIB: return "curveattrib"_sh;
246  case Lengthfalloffdecayoverride::SKINATTRIB: return "skinattrib"_sh;
247  case Lengthfalloffdecayoverride::TEXTURE: return "texture"_sh;
248  default: UT_ASSERT(false); return ""_sh;
249  }
250  }
251 
252  enum class Lengthpresets
253  {
254  SHORT = 0,
255  MEDIUM,
256  LONG
257  };
258 
260  getToken(Lengthpresets enum_value)
261  {
262  using namespace UT::Literal;
263  switch (enum_value) {
264  case Lengthpresets::SHORT: return "short"_sh;
265  case Lengthpresets::MEDIUM: return "medium"_sh;
266  case Lengthpresets::LONG: return "long"_sh;
267  default: UT_ASSERT(false); return ""_sh;
268  }
269  }
270 
271  enum class Skincurvpresets
272  {
273  FLAT = 0,
275  CONCAVE,
276  CONCAVEFLAT,
277  CONVEX,
278  CONVEXFLAT
279  };
280 
283  {
284  using namespace UT::Literal;
285  switch (enum_value) {
286  case Skincurvpresets::FLAT: return "flat"_sh;
287  case Skincurvpresets::CONCAVECONVEX: return "concaveconvex"_sh;
288  case Skincurvpresets::CONCAVE: return "concave"_sh;
289  case Skincurvpresets::CONCAVEFLAT: return "concaveflat"_sh;
290  case Skincurvpresets::CONVEX: return "convex"_sh;
291  case Skincurvpresets::CONVEXFLAT: return "convexflat"_sh;
292  default: UT_ASSERT(false); return ""_sh;
293  }
294  }
295 
297  {
298  INSIDE = 0,
299  OUTSIDE,
300  SURFACE
301  };
302 
305  {
306  using namespace UT::Literal;
307  switch (enum_value) {
308  case Geodepthramppresets::INSIDE: return "inside"_sh;
309  case Geodepthramppresets::OUTSIDE: return "outside"_sh;
310  case Geodepthramppresets::SURFACE: return "surface"_sh;
311  default: UT_ASSERT(false); return ""_sh;
312  }
313  }
314 
315  enum class Randommaskcombine
316  {
317  MULTFRACANDVALUE = 0,
318  MULTFRAC,
319  MULTVALUE
320  };
321 
324  {
325  using namespace UT::Literal;
326  switch (enum_value) {
327  case Randommaskcombine::MULTFRACANDVALUE: return "multfracandvalue"_sh;
328  case Randommaskcombine::MULTFRAC: return "multfrac"_sh;
329  case Randommaskcombine::MULTVALUE: return "multvalue"_sh;
330  default: UT_ASSERT(false); return ""_sh;
331  }
332  }
333 
334 }
335 
336 
338 {
339 public:
340  static int version() { return 1; }
341 
343  {
344  myUvattrib = "uv"_UTsh;
345  myGrouptype = 0;
346  myGroup = ""_UTsh;
347  myZeroungrouped = true;
348  myInputmask = 1;
349  myInputmaskoverride = 0;
350  myInputmaskcurveattrib = "mask"_UTsh;
351  myInputmaskattrib = "mask"_UTsh;
352  myInputmasktexture = ""_UTsh;
353  myVismasks = true;
354  myOutattribtype = 0;
355  myOutattrib = "mask"_UTsh;
356  myCreateprimgroup = false;
357  myOutprimgroup = "affected"_UTsh;
358  myCreateintattrib = false;
359  myIntattrib = "class"_UTsh;
360  myIntattribvalue = 1;
361  myIntattribthresh = 0.5;
362  myUsenoisemask = false;
363  myNoisemaskamount = 1;
364  myNoisemaskamountoverride = 0;
365  myNoisemaskamountcurveattrib = "noiseamount"_UTsh;
366  myNoisemaskamountattrib = "noiseamount"_UTsh;
367  myNoisemaskamounttexture = ""_UTsh;
368  myNoisemaskfreq = 20;
369  myNoisemaskgain = 0.5;
370  myNoisemaskgainoverride = 0;
371  myNoisemaskgaincurveattrib = "noisegain"_UTsh;
372  myNoisemaskgainattrib = "noisegain"_UTsh;
373  myNoisemaskgaintexture = ""_UTsh;
374  myNoisemaskbias = 0.5;
375  myNoisemaskbiasoverride = 0;
376  myNoisemaskbiascurveattrib = "noisebias"_UTsh;
377  myNoisemaskbiasattrib = "noisebias"_UTsh;
378  myNoisemaskbiastexture = ""_UTsh;
379  myNoisemaskcenterone = false;
380  myNoisemaskfractal = false;
381  myNoisemaskoct = 8;
382  myNoisemasklac = 2.01234;
383  myNoisemaskrough = 0.5;
384  myNoisemaskroughoverride = 0;
385  myNoisemaskroughcurveattrib = "noiserough"_UTsh;
386  myNoisemaskroughattrib = "noiserough"_UTsh;
387  myNoisemaskroughtexture = ""_UTsh;
388  myUselengthmask = false;
389  myLengthmode = 3;
390  myLengthref = 0.1;
391  myLengthrefoverride = 0;
392  myLengthrefcurveattrib = "lengthscale"_UTsh;
393  myLengthrefattrib = "lengthscale"_UTsh;
394  myLengthreftexture = ""_UTsh;
395  myLengthfalloffrange = 0.05;
396  myLengthfalloffrangeoverride = 0;
397  myLengthfalloffrangecurveattrib = "lengthfalloffrange"_UTsh;
398  myLengthfalloffrangeattrib = "lengthfalloffrange"_UTsh;
399  myLengthfalloffrangetexture = ""_UTsh;
400  myLengthfalloffdecay = 1;
401  myLengthfalloffdecayoverride = 0;
402  myLengthfalloffdecaycurveattrib = "lengthfalloffdecay"_UTsh;
403  myLengthfalloffdecayattrib = "lengthfalloffdecay"_UTsh;
404  myLengthfalloffdecaytexture = ""_UTsh;
405  myLengthrangemin = 0;
406  myLengthrangemax = 0.1;
407  myLengthpresets = 2;
408  myLengthramp = UT_SharedPtr<UT_Ramp>(0);
409  myUseskincurvmask = false;
410  mySkincurvconcavemax = 0.25;
411  mySkincurvconvexmax = 0.25;
412  mySkincurvesmoothstrength = 10;
413  mySkincurvpresets = 1;
414  mySkincurvramp = UT_Ramp::buildFromDefault("1pos ( 0 ) 1value ( 1 ) 1interp ( linear ) 2pos ( 0.5 ) 2value ( 0 ) 2interp ( linear ) 3pos ( 1 ) 3value ( 1 ) 3interp ( linear )");
415  myUsegeomask = false;
416  myGeovoxelsize = 0.1;
417  myGeointrange = 1e-05;
418  myGeoextrange = 1e-05;
419  myGeodepthramppresets = 0;
420  myGeodepthramp = UT_Ramp::buildFromDefault("1pos ( 0 ) 1value ( 0 ) 1interp ( linear ) 2pos ( 1 ) 2value ( 1 ) 2interp ( linear )");
421  myGeodoblur = false;
422  myGeoblurradius = 0;
423  myGeobluriters = 1;
424  myUserandommask = false;
425  myRandommaskcombine = 0;
426  myRandommaskseed = 0;
427  myRandommaskfrac = 0.1;
428  myRandommaskvar = 0;
429  myRandommaskvargain = 0.5;
430  myUsecurvemask = false;
431  myCurvemaskabsrange = false;
432  myCurvemaskrangemin = 0;
433  myCurvemaskrangemax = 1;
434  myCurvemaskeffectpos = 1;
435  myCurvemaskfalloff = 0.5;
436  myCurvemaskwidth = 1;
437  myCurvemaskramp = UT_Ramp::buildFromDefault("1pos ( 0 ) 1value ( 0 ) 1interp ( bspline ) 2pos ( 0.30974876880645752 ) 2value ( 0.27643021941184998 ) 2interp ( bspline ) 3pos ( 1 ) 3value ( 1 ) 3interp ( bspline )");
438  myUseskinlookupattribs = true;
439 
440  }
441 
442  explicit SOP_GuideMaskParms(const SOP_GuideMaskParms &) = default;
443  SOP_GuideMaskParms &operator=(const SOP_GuideMaskParms &) = default;
444  SOP_GuideMaskParms(SOP_GuideMaskParms &&) noexcept = default;
445  SOP_GuideMaskParms &operator=(SOP_GuideMaskParms &&) noexcept = default;
446 
447  ~SOP_GuideMaskParms() override {}
448 
449  bool operator==(const SOP_GuideMaskParms &src) const
450  {
451  if (myUvattrib != src.myUvattrib) return false;
452  if (myGrouptype != src.myGrouptype) return false;
453  if (myGroup != src.myGroup) return false;
454  if (myZeroungrouped != src.myZeroungrouped) return false;
455  if (myInputmask != src.myInputmask) return false;
456  if (myInputmaskoverride != src.myInputmaskoverride) return false;
457  if (myInputmaskcurveattrib != src.myInputmaskcurveattrib) return false;
458  if (myInputmaskattrib != src.myInputmaskattrib) return false;
459  if (myInputmasktexture != src.myInputmasktexture) return false;
460  if (myVismasks != src.myVismasks) return false;
461  if (myOutattribtype != src.myOutattribtype) return false;
462  if (myOutattrib != src.myOutattrib) return false;
463  if (myCreateprimgroup != src.myCreateprimgroup) return false;
464  if (myOutprimgroup != src.myOutprimgroup) return false;
465  if (myCreateintattrib != src.myCreateintattrib) return false;
466  if (myIntattrib != src.myIntattrib) return false;
467  if (myIntattribvalue != src.myIntattribvalue) return false;
468  if (myIntattribthresh != src.myIntattribthresh) return false;
469  if (myUsenoisemask != src.myUsenoisemask) return false;
470  if (myNoisemaskamount != src.myNoisemaskamount) return false;
471  if (myNoisemaskamountoverride != src.myNoisemaskamountoverride) return false;
472  if (myNoisemaskamountcurveattrib != src.myNoisemaskamountcurveattrib) return false;
473  if (myNoisemaskamountattrib != src.myNoisemaskamountattrib) return false;
474  if (myNoisemaskamounttexture != src.myNoisemaskamounttexture) return false;
475  if (myNoisemaskfreq != src.myNoisemaskfreq) return false;
476  if (myNoisemaskgain != src.myNoisemaskgain) return false;
477  if (myNoisemaskgainoverride != src.myNoisemaskgainoverride) return false;
478  if (myNoisemaskgaincurveattrib != src.myNoisemaskgaincurveattrib) return false;
479  if (myNoisemaskgainattrib != src.myNoisemaskgainattrib) return false;
480  if (myNoisemaskgaintexture != src.myNoisemaskgaintexture) return false;
481  if (myNoisemaskbias != src.myNoisemaskbias) return false;
482  if (myNoisemaskbiasoverride != src.myNoisemaskbiasoverride) return false;
483  if (myNoisemaskbiascurveattrib != src.myNoisemaskbiascurveattrib) return false;
484  if (myNoisemaskbiasattrib != src.myNoisemaskbiasattrib) return false;
485  if (myNoisemaskbiastexture != src.myNoisemaskbiastexture) return false;
486  if (myNoisemaskcenterone != src.myNoisemaskcenterone) return false;
487  if (myNoisemaskfractal != src.myNoisemaskfractal) return false;
488  if (myNoisemaskoct != src.myNoisemaskoct) return false;
489  if (myNoisemasklac != src.myNoisemasklac) return false;
490  if (myNoisemaskrough != src.myNoisemaskrough) return false;
491  if (myNoisemaskroughoverride != src.myNoisemaskroughoverride) return false;
492  if (myNoisemaskroughcurveattrib != src.myNoisemaskroughcurveattrib) return false;
493  if (myNoisemaskroughattrib != src.myNoisemaskroughattrib) return false;
494  if (myNoisemaskroughtexture != src.myNoisemaskroughtexture) return false;
495  if (myUselengthmask != src.myUselengthmask) return false;
496  if (myLengthmode != src.myLengthmode) return false;
497  if (myLengthref != src.myLengthref) return false;
498  if (myLengthrefoverride != src.myLengthrefoverride) return false;
499  if (myLengthrefcurveattrib != src.myLengthrefcurveattrib) return false;
500  if (myLengthrefattrib != src.myLengthrefattrib) return false;
501  if (myLengthreftexture != src.myLengthreftexture) return false;
502  if (myLengthfalloffrange != src.myLengthfalloffrange) return false;
503  if (myLengthfalloffrangeoverride != src.myLengthfalloffrangeoverride) return false;
504  if (myLengthfalloffrangecurveattrib != src.myLengthfalloffrangecurveattrib) return false;
505  if (myLengthfalloffrangeattrib != src.myLengthfalloffrangeattrib) return false;
506  if (myLengthfalloffrangetexture != src.myLengthfalloffrangetexture) return false;
507  if (myLengthfalloffdecay != src.myLengthfalloffdecay) return false;
508  if (myLengthfalloffdecayoverride != src.myLengthfalloffdecayoverride) return false;
509  if (myLengthfalloffdecaycurveattrib != src.myLengthfalloffdecaycurveattrib) return false;
510  if (myLengthfalloffdecayattrib != src.myLengthfalloffdecayattrib) return false;
511  if (myLengthfalloffdecaytexture != src.myLengthfalloffdecaytexture) return false;
512  if (myLengthrangemin != src.myLengthrangemin) return false;
513  if (myLengthrangemax != src.myLengthrangemax) return false;
514  if (myLengthpresets != src.myLengthpresets) return false;
515  if (myLengthramp != src.myLengthramp)
516  { if (!myLengthramp || !src.myLengthramp || !(*myLengthramp == *src.myLengthramp)) return false; }
517  if (myUseskincurvmask != src.myUseskincurvmask) return false;
518  if (mySkincurvconcavemax != src.mySkincurvconcavemax) return false;
519  if (mySkincurvconvexmax != src.mySkincurvconvexmax) return false;
520  if (mySkincurvesmoothstrength != src.mySkincurvesmoothstrength) return false;
521  if (mySkincurvpresets != src.mySkincurvpresets) return false;
522  if (mySkincurvramp != src.mySkincurvramp)
523  { if (!mySkincurvramp || !src.mySkincurvramp || !(*mySkincurvramp == *src.mySkincurvramp)) return false; }
524  if (myUsegeomask != src.myUsegeomask) return false;
525  if (myGeovoxelsize != src.myGeovoxelsize) return false;
526  if (myGeointrange != src.myGeointrange) return false;
527  if (myGeoextrange != src.myGeoextrange) return false;
528  if (myGeodepthramppresets != src.myGeodepthramppresets) return false;
529  if (myGeodepthramp != src.myGeodepthramp)
530  { if (!myGeodepthramp || !src.myGeodepthramp || !(*myGeodepthramp == *src.myGeodepthramp)) return false; }
531  if (myGeodoblur != src.myGeodoblur) return false;
532  if (myGeoblurradius != src.myGeoblurradius) return false;
533  if (myGeobluriters != src.myGeobluriters) return false;
534  if (myUserandommask != src.myUserandommask) return false;
535  if (myRandommaskcombine != src.myRandommaskcombine) return false;
536  if (myRandommaskseed != src.myRandommaskseed) return false;
537  if (myRandommaskfrac != src.myRandommaskfrac) return false;
538  if (myRandommaskvar != src.myRandommaskvar) return false;
539  if (myRandommaskvargain != src.myRandommaskvargain) return false;
540  if (myUsecurvemask != src.myUsecurvemask) return false;
541  if (myCurvemaskabsrange != src.myCurvemaskabsrange) return false;
542  if (myCurvemaskrangemin != src.myCurvemaskrangemin) return false;
543  if (myCurvemaskrangemax != src.myCurvemaskrangemax) return false;
544  if (myCurvemaskeffectpos != src.myCurvemaskeffectpos) return false;
545  if (myCurvemaskfalloff != src.myCurvemaskfalloff) return false;
546  if (myCurvemaskwidth != src.myCurvemaskwidth) return false;
547  if (myCurvemaskramp != src.myCurvemaskramp)
548  { if (!myCurvemaskramp || !src.myCurvemaskramp || !(*myCurvemaskramp == *src.myCurvemaskramp)) return false; }
549  if (myUseskinlookupattribs != src.myUseskinlookupattribs) return false;
550 
551 
552  if (baseGetSignature() != src.baseGetSignature()) return false;
553 
554  return true;
555  }
556  bool operator!=(const SOP_GuideMaskParms &src) const
557  {
558  return !operator==(src);
559  }
575 
576 
577 
578  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
579  {
580  myUvattrib = "uv"_UTsh;
581  if (true)
582  graph->evalOpParm(myUvattrib, nodeidx, "uvattrib", time, graph->isDirect()?nullptr:depnode);
583  myGrouptype = 0;
584  if (true)
585  graph->evalOpParm(myGrouptype, nodeidx, "grouptype", time, graph->isDirect()?nullptr:depnode);
586  myGroup = ""_UTsh;
587  if (true)
588  graph->evalOpParm(myGroup, nodeidx, "group", time, graph->isDirect()?nullptr:depnode);
589  myZeroungrouped = true;
590  if (true)
591  graph->evalOpParm(myZeroungrouped, nodeidx, "zeroungrouped", time, graph->isDirect()?nullptr:depnode);
592  myInputmask = 1;
593  if (true)
594  graph->evalOpParm(myInputmask, nodeidx, "inputmask", time, graph->isDirect()?nullptr:depnode);
595  myInputmaskoverride = 0;
596  if (true)
597  graph->evalOpParm(myInputmaskoverride, nodeidx, "inputmaskoverride", time, graph->isDirect()?nullptr:depnode);
598  myInputmaskcurveattrib = "mask"_UTsh;
599  if (true && ( (true&&!(((int64(getInputmaskoverride())!=1)))) ) )
600  graph->evalOpParm(myInputmaskcurveattrib, nodeidx, "inputmaskcurveattrib", time, graph->isDirect()?nullptr:depnode);
601  myInputmaskattrib = "mask"_UTsh;
602  if (true && ( (true&&!(((int64(getInputmaskoverride())!=2)))) ) )
603  graph->evalOpParm(myInputmaskattrib, nodeidx, "inputmaskattrib", time, graph->isDirect()?nullptr:depnode);
604  myInputmasktexture = ""_UTsh;
605  if (true && ( (true&&!(((int64(getInputmaskoverride())!=3)))) ) )
606  graph->evalOpParm(myInputmasktexture, nodeidx, "inputmasktexture", time, graph->isDirect()?nullptr:depnode);
607  myVismasks = true;
608  if (true)
609  graph->evalOpParm(myVismasks, nodeidx, "vismasks", time, graph->isDirect()?nullptr:depnode);
610  myOutattribtype = 0;
611  if (true)
612  graph->evalOpParm(myOutattribtype, nodeidx, "outattribtype", time, graph->isDirect()?nullptr:depnode);
613  myOutattrib = "mask"_UTsh;
614  if (true)
615  graph->evalOpParm(myOutattrib, nodeidx, "outattrib", time, graph->isDirect()?nullptr:depnode);
616  myCreateprimgroup = false;
617  if (true)
618  graph->evalOpParm(myCreateprimgroup, nodeidx, "createprimgroup", time, graph->isDirect()?nullptr:depnode);
619  myOutprimgroup = "affected"_UTsh;
620  if (true && ( (true&&!(((getCreateprimgroup()==0)))) ) )
621  graph->evalOpParm(myOutprimgroup, nodeidx, "outprimgroup", time, graph->isDirect()?nullptr:depnode);
622  myCreateintattrib = false;
623  if (true && ( (true&&!(((int64(getOutattribtype())!=0)))) ) )
624  graph->evalOpParm(myCreateintattrib, nodeidx, "createintattrib", time, graph->isDirect()?nullptr:depnode);
625  myIntattrib = "class"_UTsh;
626  if (true && ( (true&&!(((int64(getOutattribtype())!=0))||((getCreateintattrib()==0)))) ) )
627  graph->evalOpParm(myIntattrib, nodeidx, "intattrib", time, graph->isDirect()?nullptr:depnode);
628  myIntattribvalue = 1;
629  if (true && ( (true&&!(((int64(getOutattribtype())!=0))||((getCreateintattrib()==0)))) ) )
630  graph->evalOpParm(myIntattribvalue, nodeidx, "intattribvalue", time, graph->isDirect()?nullptr:depnode);
631  myIntattribthresh = 0.5;
632  if (true && ( (true&&!(((int64(getOutattribtype())!=0))||((getCreateintattrib()==0)))) ) )
633  graph->evalOpParm(myIntattribthresh, nodeidx, "intattribthresh", time, graph->isDirect()?nullptr:depnode);
634  myUsenoisemask = false;
635  if (true)
636  graph->evalOpParm(myUsenoisemask, nodeidx, "usenoisemask", time, graph->isDirect()?nullptr:depnode);
637  myNoisemaskamount = 1;
638  if (true && ( (true&&!(((getUsenoisemask()==0)))) ) )
639  graph->evalOpParm(myNoisemaskamount, nodeidx, "noisemaskamount", time, graph->isDirect()?nullptr:depnode);
640  myNoisemaskamountoverride = 0;
641  if (true && ( (true&&!(((getUsenoisemask()==0)))) ) )
642  graph->evalOpParm(myNoisemaskamountoverride, nodeidx, "noisemaskamountoverride", time, graph->isDirect()?nullptr:depnode);
643  myNoisemaskamountcurveattrib = "noiseamount"_UTsh;
644  if (true && ( (true&&!(((getUsenoisemask()==0))||((int64(getNoisemaskamountoverride())!=1)))) ) )
645  graph->evalOpParm(myNoisemaskamountcurveattrib, nodeidx, "noisemaskamountcurveattrib", time, graph->isDirect()?nullptr:depnode);
646  myNoisemaskamountattrib = "noiseamount"_UTsh;
647  if (true && ( (true&&!(((getUsenoisemask()==0))||((int64(getNoisemaskamountoverride())!=2)))) ) )
648  graph->evalOpParm(myNoisemaskamountattrib, nodeidx, "noisemaskamountattrib", time, graph->isDirect()?nullptr:depnode);
649  myNoisemaskamounttexture = ""_UTsh;
650  if (true && ( (true&&!(((getUsenoisemask()==0))||((int64(getNoisemaskamountoverride())!=3)))) ) )
651  graph->evalOpParm(myNoisemaskamounttexture, nodeidx, "noisemaskamounttexture", time, graph->isDirect()?nullptr:depnode);
652  myNoisemaskfreq = 20;
653  if (true && ( (true&&!(((getUsenoisemask()==0)))) ) )
654  graph->evalOpParm(myNoisemaskfreq, nodeidx, "noisemaskfreq", time, graph->isDirect()?nullptr:depnode);
655  myNoisemaskgain = 0.5;
656  if (true && ( (true&&!(((getUsenoisemask()==0)))) ) )
657  graph->evalOpParm(myNoisemaskgain, nodeidx, "noisemaskgain", time, graph->isDirect()?nullptr:depnode);
658  myNoisemaskgainoverride = 0;
659  if (true && ( (true&&!(((getUsenoisemask()==0)))) ) )
660  graph->evalOpParm(myNoisemaskgainoverride, nodeidx, "noisemaskgainoverride", time, graph->isDirect()?nullptr:depnode);
661  myNoisemaskgaincurveattrib = "noisegain"_UTsh;
662  if (true && ( (true&&!(((getUsenoisemask()==0))||((int64(getNoisemaskgainoverride())!=1)))) ) )
663  graph->evalOpParm(myNoisemaskgaincurveattrib, nodeidx, "noisemaskgaincurveattrib", time, graph->isDirect()?nullptr:depnode);
664  myNoisemaskgainattrib = "noisegain"_UTsh;
665  if (true && ( (true&&!(((getUsenoisemask()==0))||((int64(getNoisemaskgainoverride())!=2)))) ) )
666  graph->evalOpParm(myNoisemaskgainattrib, nodeidx, "noisemaskgainattrib", time, graph->isDirect()?nullptr:depnode);
667  myNoisemaskgaintexture = ""_UTsh;
668  if (true && ( (true&&!(((getUsenoisemask()==0))||((int64(getNoisemaskgainoverride())!=3)))) ) )
669  graph->evalOpParm(myNoisemaskgaintexture, nodeidx, "noisemaskgaintexture", time, graph->isDirect()?nullptr:depnode);
670  myNoisemaskbias = 0.5;
671  if (true && ( (true&&!(((getUsenoisemask()==0)))) ) )
672  graph->evalOpParm(myNoisemaskbias, nodeidx, "noisemaskbias", time, graph->isDirect()?nullptr:depnode);
673  myNoisemaskbiasoverride = 0;
674  if (true && ( (true&&!(((getUsenoisemask()==0)))) ) )
675  graph->evalOpParm(myNoisemaskbiasoverride, nodeidx, "noisemaskbiasoverride", time, graph->isDirect()?nullptr:depnode);
676  myNoisemaskbiascurveattrib = "noisebias"_UTsh;
677  if (true && ( (true&&!(((getUsenoisemask()==0))||((int64(getNoisemaskbiasoverride())!=1)))) ) )
678  graph->evalOpParm(myNoisemaskbiascurveattrib, nodeidx, "noisemaskbiascurveattrib", time, graph->isDirect()?nullptr:depnode);
679  myNoisemaskbiasattrib = "noisebias"_UTsh;
680  if (true && ( (true&&!(((getUsenoisemask()==0))||((int64(getNoisemaskbiasoverride())!=2)))) ) )
681  graph->evalOpParm(myNoisemaskbiasattrib, nodeidx, "noisemaskbiasattrib", time, graph->isDirect()?nullptr:depnode);
682  myNoisemaskbiastexture = ""_UTsh;
683  if (true && ( (true&&!(((getUsenoisemask()==0))||((int64(getNoisemaskbiasoverride())!=3)))) ) )
684  graph->evalOpParm(myNoisemaskbiastexture, nodeidx, "noisemaskbiastexture", time, graph->isDirect()?nullptr:depnode);
685  myNoisemaskcenterone = false;
686  if (true && ( (true&&!(((getUsenoisemask()==0)))) ) )
687  graph->evalOpParm(myNoisemaskcenterone, nodeidx, "noisemaskcenterone", time, graph->isDirect()?nullptr:depnode);
688  myNoisemaskfractal = false;
689  if (true && ( (true&&!(((getUsenoisemask()==0)))) ) )
690  graph->evalOpParm(myNoisemaskfractal, nodeidx, "noisemaskfractal", time, graph->isDirect()?nullptr:depnode);
691  myNoisemaskoct = 8;
692  if (true && ( (true&&!(((getNoisemaskfractal()==0))||((getUsenoisemask()==0)))) ) )
693  graph->evalOpParm(myNoisemaskoct, nodeidx, "noisemaskoct", time, graph->isDirect()?nullptr:depnode);
694  myNoisemasklac = 2.01234;
695  if (true && ( (true&&!(((getNoisemaskfractal()==0))||((getUsenoisemask()==0)))) ) )
696  graph->evalOpParm(myNoisemasklac, nodeidx, "noisemasklac", time, graph->isDirect()?nullptr:depnode);
697  myNoisemaskrough = 0.5;
698  if (true && ( (true&&!(((getNoisemaskfractal()==0))||((getUsenoisemask()==0)))) ) )
699  graph->evalOpParm(myNoisemaskrough, nodeidx, "noisemaskrough", time, graph->isDirect()?nullptr:depnode);
700  myNoisemaskroughoverride = 0;
701  if (true && ( (true&&!(((getNoisemaskfractal()==0))||((getUsenoisemask()==0)))) ) )
702  graph->evalOpParm(myNoisemaskroughoverride, nodeidx, "noisemaskroughoverride", time, graph->isDirect()?nullptr:depnode);
703  myNoisemaskroughcurveattrib = "noiserough"_UTsh;
704  if (true && ( (true&&!(((getNoisemaskfractal()==0))||((getUsenoisemask()==0))||((int64(getNoisemaskroughoverride())!=1)))) ) )
705  graph->evalOpParm(myNoisemaskroughcurveattrib, nodeidx, "noisemaskroughcurveattrib", time, graph->isDirect()?nullptr:depnode);
706  myNoisemaskroughattrib = "noiserough"_UTsh;
707  if (true && ( (true&&!(((getNoisemaskfractal()==0))||((getUsenoisemask()==0))||((int64(getNoisemaskroughoverride())!=2)))) ) )
708  graph->evalOpParm(myNoisemaskroughattrib, nodeidx, "noisemaskroughattrib", time, graph->isDirect()?nullptr:depnode);
709  myNoisemaskroughtexture = ""_UTsh;
710  if (true && ( (true&&!(((getNoisemaskfractal()==0))||((getUsenoisemask()==0))||((int64(getNoisemaskroughoverride())!=3)))) ) )
711  graph->evalOpParm(myNoisemaskroughtexture, nodeidx, "noisemaskroughtexture", time, graph->isDirect()?nullptr:depnode);
712  myUselengthmask = false;
713  if (true)
714  graph->evalOpParm(myUselengthmask, nodeidx, "uselengthmask", time, graph->isDirect()?nullptr:depnode);
715  myLengthmode = 3;
716  if (true && ( (true&&!(((getUselengthmask()==0)))) ) )
717  graph->evalOpParm(myLengthmode, nodeidx, "lengthmode", time, graph->isDirect()?nullptr:depnode);
718  myLengthref = 0.1;
719  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0)))) ) )
720  graph->evalOpParm(myLengthref, nodeidx, "lengthref", time, graph->isDirect()?nullptr:depnode);
721  myLengthrefoverride = 0;
722  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0)))) ) )
723  graph->evalOpParm(myLengthrefoverride, nodeidx, "lengthrefoverride", time, graph->isDirect()?nullptr:depnode);
724  myLengthrefcurveattrib = "lengthscale"_UTsh;
725  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0))||((int64(getLengthrefoverride())!=1)))) ) )
726  graph->evalOpParm(myLengthrefcurveattrib, nodeidx, "lengthrefcurveattrib", time, graph->isDirect()?nullptr:depnode);
727  myLengthrefattrib = "lengthscale"_UTsh;
728  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0))||((int64(getLengthrefoverride())!=2)))) ) )
729  graph->evalOpParm(myLengthrefattrib, nodeidx, "lengthrefattrib", time, graph->isDirect()?nullptr:depnode);
730  myLengthreftexture = ""_UTsh;
731  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0))||((int64(getLengthrefoverride())!=3)))) ) )
732  graph->evalOpParm(myLengthreftexture, nodeidx, "lengthreftexture", time, graph->isDirect()?nullptr:depnode);
733  myLengthfalloffrange = 0.05;
734  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0)))) ) )
735  graph->evalOpParm(myLengthfalloffrange, nodeidx, "lengthfalloffrange", time, graph->isDirect()?nullptr:depnode);
736  myLengthfalloffrangeoverride = 0;
737  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0)))) ) )
738  graph->evalOpParm(myLengthfalloffrangeoverride, nodeidx, "lengthfalloffrangeoverride", time, graph->isDirect()?nullptr:depnode);
739  myLengthfalloffrangecurveattrib = "lengthfalloffrange"_UTsh;
740  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0))||((int64(getLengthfalloffrangeoverride())!=1)))) ) )
741  graph->evalOpParm(myLengthfalloffrangecurveattrib, nodeidx, "lengthfalloffrangecurveattrib", time, graph->isDirect()?nullptr:depnode);
742  myLengthfalloffrangeattrib = "lengthfalloffrange"_UTsh;
743  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0))||((int64(getLengthfalloffrangeoverride())!=2)))) ) )
744  graph->evalOpParm(myLengthfalloffrangeattrib, nodeidx, "lengthfalloffrangeattrib", time, graph->isDirect()?nullptr:depnode);
745  myLengthfalloffrangetexture = ""_UTsh;
746  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0))||((int64(getLengthfalloffrangeoverride())!=3)))) ) )
747  graph->evalOpParm(myLengthfalloffrangetexture, nodeidx, "lengthfalloffrangetexture", time, graph->isDirect()?nullptr:depnode);
748  myLengthfalloffdecay = 1;
749  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0)))) ) )
750  graph->evalOpParm(myLengthfalloffdecay, nodeidx, "lengthfalloffdecay", time, graph->isDirect()?nullptr:depnode);
751  myLengthfalloffdecayoverride = 0;
752  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0)))) ) )
753  graph->evalOpParm(myLengthfalloffdecayoverride, nodeidx, "lengthfalloffdecayoverride", time, graph->isDirect()?nullptr:depnode);
754  myLengthfalloffdecaycurveattrib = "lengthfalloffdecay"_UTsh;
755  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0))||((int64(getLengthfalloffdecayoverride())!=1)))) ) )
756  graph->evalOpParm(myLengthfalloffdecaycurveattrib, nodeidx, "lengthfalloffdecaycurveattrib", time, graph->isDirect()?nullptr:depnode);
757  myLengthfalloffdecayattrib = "lengthfalloffdecay"_UTsh;
758  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0))||((int64(getLengthfalloffdecayoverride())!=2)))) ) )
759  graph->evalOpParm(myLengthfalloffdecayattrib, nodeidx, "lengthfalloffdecayattrib", time, graph->isDirect()?nullptr:depnode);
760  myLengthfalloffdecaytexture = ""_UTsh;
761  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0))||((int64(getLengthfalloffdecayoverride())!=3)))) ) )
762  graph->evalOpParm(myLengthfalloffdecaytexture, nodeidx, "lengthfalloffdecaytexture", time, graph->isDirect()?nullptr:depnode);
763  myLengthrangemin = 0;
764  if (true && ( (true&&!(((int64(getLengthmode())!=4))||((getUselengthmask()==0)))) ) )
765  graph->evalOpParm(myLengthrangemin, nodeidx, "lengthrangemin", time, graph->isDirect()?nullptr:depnode);
766  myLengthrangemax = 0.1;
767  if (true && ( (true&&!(((int64(getLengthmode())!=4))||((getUselengthmask()==0)))) ) )
768  graph->evalOpParm(myLengthrangemax, nodeidx, "lengthrangemax", time, graph->isDirect()?nullptr:depnode);
769  myLengthpresets = 2;
770  if (true && ( (true&&!(((int64(getLengthmode())!=3)&&(int64(getLengthmode())!=4))||((getUselengthmask()==0)))) ) )
771  graph->evalOpParm(myLengthpresets, nodeidx, "lengthpresets", time, graph->isDirect()?nullptr:depnode);
772  myLengthramp = UT_SharedPtr<UT_Ramp>(0);
773  if (true && ( (true&&!(((int64(getLengthmode())!=3)&&(int64(getLengthmode())!=4))||((getUselengthmask()==0)))) ) )
774  graph->evalOpParm(myLengthramp, nodeidx, "lengthramp", time, graph->isDirect()?nullptr:depnode);
775  myUseskincurvmask = false;
776  if (true)
777  graph->evalOpParm(myUseskincurvmask, nodeidx, "useskincurvmask", time, graph->isDirect()?nullptr:depnode);
778  mySkincurvconcavemax = 0.25;
779  if (true && ( (true&&!(((getUseskincurvmask()==0)))) ) )
780  graph->evalOpParm(mySkincurvconcavemax, nodeidx, "skincurvconcavemax", time, graph->isDirect()?nullptr:depnode);
781  mySkincurvconvexmax = 0.25;
782  if (true && ( (true&&!(((getUseskincurvmask()==0)))) ) )
783  graph->evalOpParm(mySkincurvconvexmax, nodeidx, "skincurvconvexmax", time, graph->isDirect()?nullptr:depnode);
784  mySkincurvesmoothstrength = 10;
785  if (true && ( (true&&!(((getUseskincurvmask()==0)))) ) )
786  graph->evalOpParm(mySkincurvesmoothstrength, nodeidx, "skincurvesmoothstrength", time, graph->isDirect()?nullptr:depnode);
787  mySkincurvpresets = 1;
788  if (true && ( (true&&!(((getUseskincurvmask()==0)))) ) )
789  graph->evalOpParm(mySkincurvpresets, nodeidx, "skincurvpresets", time, graph->isDirect()?nullptr:depnode);
790  mySkincurvramp = UT_Ramp::buildFromDefault("1pos ( 0 ) 1value ( 1 ) 1interp ( linear ) 2pos ( 0.5 ) 2value ( 0 ) 2interp ( linear ) 3pos ( 1 ) 3value ( 1 ) 3interp ( linear )");
791  if (true && ( (true&&!(((getUseskincurvmask()==0)))) ) )
792  graph->evalOpParm(mySkincurvramp, nodeidx, "skincurvramp", time, graph->isDirect()?nullptr:depnode);
793  myUsegeomask = false;
794  if (true)
795  graph->evalOpParm(myUsegeomask, nodeidx, "usegeomask", time, graph->isDirect()?nullptr:depnode);
796  myGeovoxelsize = 0.1;
797  if (true && ( (true&&!(((getUsegeomask()==0)))) ) )
798  graph->evalOpParm(myGeovoxelsize, nodeidx, "geovoxelsize", time, graph->isDirect()?nullptr:depnode);
799  myGeointrange = 1e-05;
800  if (true && ( (true&&!(((getUsegeomask()==0)))) ) )
801  graph->evalOpParm(myGeointrange, nodeidx, "geointrange", time, graph->isDirect()?nullptr:depnode);
802  myGeoextrange = 1e-05;
803  if (true && ( (true&&!(((getUsegeomask()==0)))) ) )
804  graph->evalOpParm(myGeoextrange, nodeidx, "geoextrange", time, graph->isDirect()?nullptr:depnode);
805  myGeodepthramppresets = 0;
806  if (true && ( (true&&!(((getUsegeomask()==0)))) ) )
807  graph->evalOpParm(myGeodepthramppresets, nodeidx, "geodepthramppresets", time, graph->isDirect()?nullptr:depnode);
808  myGeodepthramp = UT_Ramp::buildFromDefault("1pos ( 0 ) 1value ( 0 ) 1interp ( linear ) 2pos ( 1 ) 2value ( 1 ) 2interp ( linear )");
809  if (true && ( (true&&!(((getUsegeomask()==0)))) ) )
810  graph->evalOpParm(myGeodepthramp, nodeidx, "geodepthramp", time, graph->isDirect()?nullptr:depnode);
811  myGeodoblur = false;
812  if (true && ( (true&&!(((getUsegeomask()==0)))) ) )
813  graph->evalOpParm(myGeodoblur, nodeidx, "geodoblur", time, graph->isDirect()?nullptr:depnode);
814  myGeoblurradius = 0;
815  if (true && ( (true&&!(((getGeodoblur()==0))||((getUsegeomask()==0)))) ) )
816  graph->evalOpParm(myGeoblurradius, nodeidx, "geoblurradius", time, graph->isDirect()?nullptr:depnode);
817  myGeobluriters = 1;
818  if (true && ( (true&&!(((getGeodoblur()==0))||((getUsegeomask()==0)))) ) )
819  graph->evalOpParm(myGeobluriters, nodeidx, "geobluriters", time, graph->isDirect()?nullptr:depnode);
820  myUserandommask = false;
821  if (true)
822  graph->evalOpParm(myUserandommask, nodeidx, "userandommask", time, graph->isDirect()?nullptr:depnode);
823  myRandommaskcombine = 0;
824  if (true && ( (true&&!(((getUserandommask()==0)))) ) )
825  graph->evalOpParm(myRandommaskcombine, nodeidx, "randommaskcombine", time, graph->isDirect()?nullptr:depnode);
826  myRandommaskseed = 0;
827  if (true && ( (true&&!(((getUserandommask()==0)))) ) )
828  graph->evalOpParm(myRandommaskseed, nodeidx, "randommaskseed", time, graph->isDirect()?nullptr:depnode);
829  myRandommaskfrac = 0.1;
830  if (true && ( (true&&!(((getUserandommask()==0)))) ) )
831  graph->evalOpParm(myRandommaskfrac, nodeidx, "randommaskfrac", time, graph->isDirect()?nullptr:depnode);
832  myRandommaskvar = 0;
833  if (true && ( (true&&!(((getUserandommask()==0)))) ) )
834  graph->evalOpParm(myRandommaskvar, nodeidx, "randommaskvar", time, graph->isDirect()?nullptr:depnode);
835  myRandommaskvargain = 0.5;
836  if (true && ( (true&&!(((getRandommaskvar()==0))||((getUserandommask()==0)))) ) )
837  graph->evalOpParm(myRandommaskvargain, nodeidx, "randommaskvargain", time, graph->isDirect()?nullptr:depnode);
838  myUsecurvemask = false;
839  if (true && ( (true&&!(((int64(getOutattribtype())==0)))) ) )
840  graph->evalOpParm(myUsecurvemask, nodeidx, "usecurvemask", time, graph->isDirect()?nullptr:depnode);
841  myCurvemaskabsrange = false;
842  if (true && ( (true&&!(((int64(getOutattribtype())==0))||((getUsecurvemask()==0)))) ) )
843  graph->evalOpParm(myCurvemaskabsrange, nodeidx, "curvemaskabsrange", time, graph->isDirect()?nullptr:depnode);
844  myCurvemaskrangemin = 0;
845  if (true && ( (true&&!(((int64(getOutattribtype())==0))||((getUsecurvemask()==0)))) ) )
846  graph->evalOpParm(myCurvemaskrangemin, nodeidx, "curvemaskrangemin", time, graph->isDirect()?nullptr:depnode);
847  myCurvemaskrangemax = 1;
848  if (true && ( (true&&!(((int64(getOutattribtype())==0))||((getUsecurvemask()==0)))) ) )
849  graph->evalOpParm(myCurvemaskrangemax, nodeidx, "curvemaskrangemax", time, graph->isDirect()?nullptr:depnode);
850  myCurvemaskeffectpos = 1;
851  if (true && ( (true&&!(((int64(getOutattribtype())==0))||((getUsecurvemask()==0)))) ) )
852  graph->evalOpParm(myCurvemaskeffectpos, nodeidx, "curvemaskeffectpos", time, graph->isDirect()?nullptr:depnode);
853  myCurvemaskfalloff = 0.5;
854  if (true && ( (true&&!(((int64(getOutattribtype())==0))||((getUsecurvemask()==0)))) ) )
855  graph->evalOpParm(myCurvemaskfalloff, nodeidx, "curvemaskfalloff", time, graph->isDirect()?nullptr:depnode);
856  myCurvemaskwidth = 1;
857  if (true && ( (true&&!(((int64(getOutattribtype())==0))||((getUsecurvemask()==0)))) ) )
858  graph->evalOpParm(myCurvemaskwidth, nodeidx, "curvemaskwidth", time, graph->isDirect()?nullptr:depnode);
859  myCurvemaskramp = UT_Ramp::buildFromDefault("1pos ( 0 ) 1value ( 0 ) 1interp ( bspline ) 2pos ( 0.30974876880645752 ) 2value ( 0.27643021941184998 ) 2interp ( bspline ) 3pos ( 1 ) 3value ( 1 ) 3interp ( bspline )");
860  if (true && ( (true&&!(((int64(getOutattribtype())==0))||((getUsecurvemask()==0)))) ) )
861  graph->evalOpParm(myCurvemaskramp, nodeidx, "curvemaskramp", time, graph->isDirect()?nullptr:depnode);
862  myUseskinlookupattribs = true;
863  if (true)
864  graph->evalOpParm(myUseskinlookupattribs, nodeidx, "useskinlookupattribs", time, graph->isDirect()?nullptr:depnode);
865 
866  }
867 
868 
869  void loadFromOpSubclass(const LoadParms &loadparms) override
870  {
871  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
872  }
873 
874 
875  void copyFrom(const OP_NodeParms *src) override
876  {
877  *this = *((const SOP_GuideMaskParms *)src);
878  }
879 
880  template <typename T>
881  void
882  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
883  {
884  if (idx.size() < 1)
885  return;
886  UT_ASSERT(idx.size() == instance.size()+1);
887  if (idx.size() != instance.size()+1)
888  return;
889  switch (idx[0])
890  {
891  case 0:
892  coerceValue(value, myUvattrib);
893  break;
894  case 1:
895  coerceValue(value, myGrouptype);
896  break;
897  case 2:
898  coerceValue(value, myGroup);
899  break;
900  case 3:
901  coerceValue(value, myZeroungrouped);
902  break;
903  case 4:
904  coerceValue(value, myInputmask);
905  break;
906  case 5:
907  coerceValue(value, myInputmaskoverride);
908  break;
909  case 6:
910  coerceValue(value, myInputmaskcurveattrib);
911  break;
912  case 7:
913  coerceValue(value, myInputmaskattrib);
914  break;
915  case 8:
916  coerceValue(value, myInputmasktexture);
917  break;
918  case 9:
919  coerceValue(value, myVismasks);
920  break;
921  case 10:
922  coerceValue(value, myOutattribtype);
923  break;
924  case 11:
925  coerceValue(value, myOutattrib);
926  break;
927  case 12:
928  coerceValue(value, myCreateprimgroup);
929  break;
930  case 13:
931  coerceValue(value, myOutprimgroup);
932  break;
933  case 14:
934  coerceValue(value, myCreateintattrib);
935  break;
936  case 15:
937  coerceValue(value, myIntattrib);
938  break;
939  case 16:
940  coerceValue(value, myIntattribvalue);
941  break;
942  case 17:
943  coerceValue(value, myIntattribthresh);
944  break;
945  case 18:
946  coerceValue(value, myUsenoisemask);
947  break;
948  case 19:
949  coerceValue(value, myNoisemaskamount);
950  break;
951  case 20:
952  coerceValue(value, myNoisemaskamountoverride);
953  break;
954  case 21:
955  coerceValue(value, myNoisemaskamountcurveattrib);
956  break;
957  case 22:
958  coerceValue(value, myNoisemaskamountattrib);
959  break;
960  case 23:
961  coerceValue(value, myNoisemaskamounttexture);
962  break;
963  case 24:
964  coerceValue(value, myNoisemaskfreq);
965  break;
966  case 25:
967  coerceValue(value, myNoisemaskgain);
968  break;
969  case 26:
970  coerceValue(value, myNoisemaskgainoverride);
971  break;
972  case 27:
973  coerceValue(value, myNoisemaskgaincurveattrib);
974  break;
975  case 28:
976  coerceValue(value, myNoisemaskgainattrib);
977  break;
978  case 29:
979  coerceValue(value, myNoisemaskgaintexture);
980  break;
981  case 30:
982  coerceValue(value, myNoisemaskbias);
983  break;
984  case 31:
985  coerceValue(value, myNoisemaskbiasoverride);
986  break;
987  case 32:
988  coerceValue(value, myNoisemaskbiascurveattrib);
989  break;
990  case 33:
991  coerceValue(value, myNoisemaskbiasattrib);
992  break;
993  case 34:
994  coerceValue(value, myNoisemaskbiastexture);
995  break;
996  case 35:
997  coerceValue(value, myNoisemaskcenterone);
998  break;
999  case 36:
1000  coerceValue(value, myNoisemaskfractal);
1001  break;
1002  case 37:
1003  coerceValue(value, myNoisemaskoct);
1004  break;
1005  case 38:
1006  coerceValue(value, myNoisemasklac);
1007  break;
1008  case 39:
1009  coerceValue(value, myNoisemaskrough);
1010  break;
1011  case 40:
1012  coerceValue(value, myNoisemaskroughoverride);
1013  break;
1014  case 41:
1015  coerceValue(value, myNoisemaskroughcurveattrib);
1016  break;
1017  case 42:
1018  coerceValue(value, myNoisemaskroughattrib);
1019  break;
1020  case 43:
1021  coerceValue(value, myNoisemaskroughtexture);
1022  break;
1023  case 44:
1024  coerceValue(value, myUselengthmask);
1025  break;
1026  case 45:
1027  coerceValue(value, myLengthmode);
1028  break;
1029  case 46:
1030  coerceValue(value, myLengthref);
1031  break;
1032  case 47:
1033  coerceValue(value, myLengthrefoverride);
1034  break;
1035  case 48:
1036  coerceValue(value, myLengthrefcurveattrib);
1037  break;
1038  case 49:
1039  coerceValue(value, myLengthrefattrib);
1040  break;
1041  case 50:
1042  coerceValue(value, myLengthreftexture);
1043  break;
1044  case 51:
1045  coerceValue(value, myLengthfalloffrange);
1046  break;
1047  case 52:
1048  coerceValue(value, myLengthfalloffrangeoverride);
1049  break;
1050  case 53:
1051  coerceValue(value, myLengthfalloffrangecurveattrib);
1052  break;
1053  case 54:
1054  coerceValue(value, myLengthfalloffrangeattrib);
1055  break;
1056  case 55:
1057  coerceValue(value, myLengthfalloffrangetexture);
1058  break;
1059  case 56:
1060  coerceValue(value, myLengthfalloffdecay);
1061  break;
1062  case 57:
1063  coerceValue(value, myLengthfalloffdecayoverride);
1064  break;
1065  case 58:
1066  coerceValue(value, myLengthfalloffdecaycurveattrib);
1067  break;
1068  case 59:
1069  coerceValue(value, myLengthfalloffdecayattrib);
1070  break;
1071  case 60:
1072  coerceValue(value, myLengthfalloffdecaytexture);
1073  break;
1074  case 61:
1075  coerceValue(value, myLengthrangemin);
1076  break;
1077  case 62:
1078  coerceValue(value, myLengthrangemax);
1079  break;
1080  case 63:
1081  coerceValue(value, myLengthpresets);
1082  break;
1083  case 64:
1084  coerceValue(value, myLengthramp);
1085  break;
1086  case 65:
1087  coerceValue(value, myUseskincurvmask);
1088  break;
1089  case 66:
1090  coerceValue(value, mySkincurvconcavemax);
1091  break;
1092  case 67:
1093  coerceValue(value, mySkincurvconvexmax);
1094  break;
1095  case 68:
1096  coerceValue(value, mySkincurvesmoothstrength);
1097  break;
1098  case 69:
1099  coerceValue(value, mySkincurvpresets);
1100  break;
1101  case 70:
1102  coerceValue(value, mySkincurvramp);
1103  break;
1104  case 71:
1105  coerceValue(value, myUsegeomask);
1106  break;
1107  case 72:
1108  coerceValue(value, myGeovoxelsize);
1109  break;
1110  case 73:
1111  coerceValue(value, myGeointrange);
1112  break;
1113  case 74:
1114  coerceValue(value, myGeoextrange);
1115  break;
1116  case 75:
1117  coerceValue(value, myGeodepthramppresets);
1118  break;
1119  case 76:
1120  coerceValue(value, myGeodepthramp);
1121  break;
1122  case 77:
1123  coerceValue(value, myGeodoblur);
1124  break;
1125  case 78:
1126  coerceValue(value, myGeoblurradius);
1127  break;
1128  case 79:
1129  coerceValue(value, myGeobluriters);
1130  break;
1131  case 80:
1132  coerceValue(value, myUserandommask);
1133  break;
1134  case 81:
1135  coerceValue(value, myRandommaskcombine);
1136  break;
1137  case 82:
1138  coerceValue(value, myRandommaskseed);
1139  break;
1140  case 83:
1141  coerceValue(value, myRandommaskfrac);
1142  break;
1143  case 84:
1144  coerceValue(value, myRandommaskvar);
1145  break;
1146  case 85:
1147  coerceValue(value, myRandommaskvargain);
1148  break;
1149  case 86:
1150  coerceValue(value, myUsecurvemask);
1151  break;
1152  case 87:
1153  coerceValue(value, myCurvemaskabsrange);
1154  break;
1155  case 88:
1156  coerceValue(value, myCurvemaskrangemin);
1157  break;
1158  case 89:
1159  coerceValue(value, myCurvemaskrangemax);
1160  break;
1161  case 90:
1162  coerceValue(value, myCurvemaskeffectpos);
1163  break;
1164  case 91:
1165  coerceValue(value, myCurvemaskfalloff);
1166  break;
1167  case 92:
1168  coerceValue(value, myCurvemaskwidth);
1169  break;
1170  case 93:
1171  coerceValue(value, myCurvemaskramp);
1172  break;
1173  case 94:
1174  coerceValue(value, myUseskinlookupattribs);
1175  break;
1176 
1177  }
1178  }
1179 
1180  bool isParmColorRamp(exint idx) const override
1181  {
1182  switch (idx)
1183  {
1184 
1185  }
1186  return false;
1187  }
1188 
1189  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
1190  { doGetParmValue(idx, instance, value); }
1191  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
1192  { doGetParmValue(idx, instance, value); }
1193  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
1194  { doGetParmValue(idx, instance, value); }
1195  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
1196  { doGetParmValue(idx, instance, value); }
1197  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
1198  { doGetParmValue(idx, instance, value); }
1199  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
1200  { doGetParmValue(idx, instance, value); }
1201  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
1202  { doGetParmValue(idx, instance, value); }
1203  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
1204  { doGetParmValue(idx, instance, value); }
1205  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
1206  { doGetParmValue(idx, instance, value); }
1207  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
1208  { doGetParmValue(idx, instance, value); }
1209  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
1210  { doGetParmValue(idx, instance, value); }
1211 
1212  template <typename T>
1213  void
1214  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
1215  {
1216  if (idx.size() < 1)
1217  return;
1218  UT_ASSERT(idx.size() == instance.size()+1);
1219  if (idx.size() != instance.size()+1)
1220  return;
1221  switch (idx[0])
1222  {
1223  case 0:
1224  coerceValue(myUvattrib, ( ( value ) ));
1225  break;
1226  case 1:
1227  coerceValue(myGrouptype, clampMinValue(0, clampMaxValue(2, value ) ));
1228  break;
1229  case 2:
1230  coerceValue(myGroup, ( ( value ) ));
1231  break;
1232  case 3:
1233  coerceValue(myZeroungrouped, ( ( value ) ));
1234  break;
1235  case 4:
1236  coerceValue(myInputmask, ( ( value ) ));
1237  break;
1238  case 5:
1239  coerceValue(myInputmaskoverride, clampMinValue(0, clampMaxValue(3, value ) ));
1240  break;
1241  case 6:
1242  coerceValue(myInputmaskcurveattrib, ( ( value ) ));
1243  break;
1244  case 7:
1245  coerceValue(myInputmaskattrib, ( ( value ) ));
1246  break;
1247  case 8:
1248  coerceValue(myInputmasktexture, ( ( value ) ));
1249  break;
1250  case 9:
1251  coerceValue(myVismasks, ( ( value ) ));
1252  break;
1253  case 10:
1254  coerceValue(myOutattribtype, clampMinValue(0, clampMaxValue(1, value ) ));
1255  break;
1256  case 11:
1257  coerceValue(myOutattrib, ( ( value ) ));
1258  break;
1259  case 12:
1260  coerceValue(myCreateprimgroup, ( ( value ) ));
1261  break;
1262  case 13:
1263  coerceValue(myOutprimgroup, ( ( value ) ));
1264  break;
1265  case 14:
1266  coerceValue(myCreateintattrib, ( ( value ) ));
1267  break;
1268  case 15:
1269  coerceValue(myIntattrib, ( ( value ) ));
1270  break;
1271  case 16:
1272  coerceValue(myIntattribvalue, ( ( value ) ));
1273  break;
1274  case 17:
1275  coerceValue(myIntattribthresh, ( ( value ) ));
1276  break;
1277  case 18:
1278  coerceValue(myUsenoisemask, ( ( value ) ));
1279  break;
1280  case 19:
1281  coerceValue(myNoisemaskamount, ( ( value ) ));
1282  break;
1283  case 20:
1284  coerceValue(myNoisemaskamountoverride, clampMinValue(0, clampMaxValue(3, value ) ));
1285  break;
1286  case 21:
1287  coerceValue(myNoisemaskamountcurveattrib, ( ( value ) ));
1288  break;
1289  case 22:
1290  coerceValue(myNoisemaskamountattrib, ( ( value ) ));
1291  break;
1292  case 23:
1293  coerceValue(myNoisemaskamounttexture, ( ( value ) ));
1294  break;
1295  case 24:
1296  coerceValue(myNoisemaskfreq, ( ( value ) ));
1297  break;
1298  case 25:
1299  coerceValue(myNoisemaskgain, ( ( value ) ));
1300  break;
1301  case 26:
1302  coerceValue(myNoisemaskgainoverride, clampMinValue(0, clampMaxValue(3, value ) ));
1303  break;
1304  case 27:
1305  coerceValue(myNoisemaskgaincurveattrib, ( ( value ) ));
1306  break;
1307  case 28:
1308  coerceValue(myNoisemaskgainattrib, ( ( value ) ));
1309  break;
1310  case 29:
1311  coerceValue(myNoisemaskgaintexture, ( ( value ) ));
1312  break;
1313  case 30:
1314  coerceValue(myNoisemaskbias, ( ( value ) ));
1315  break;
1316  case 31:
1317  coerceValue(myNoisemaskbiasoverride, clampMinValue(0, clampMaxValue(3, value ) ));
1318  break;
1319  case 32:
1320  coerceValue(myNoisemaskbiascurveattrib, ( ( value ) ));
1321  break;
1322  case 33:
1323  coerceValue(myNoisemaskbiasattrib, ( ( value ) ));
1324  break;
1325  case 34:
1326  coerceValue(myNoisemaskbiastexture, ( ( value ) ));
1327  break;
1328  case 35:
1329  coerceValue(myNoisemaskcenterone, ( ( value ) ));
1330  break;
1331  case 36:
1332  coerceValue(myNoisemaskfractal, ( ( value ) ));
1333  break;
1334  case 37:
1335  coerceValue(myNoisemaskoct, ( ( value ) ));
1336  break;
1337  case 38:
1338  coerceValue(myNoisemasklac, ( ( value ) ));
1339  break;
1340  case 39:
1341  coerceValue(myNoisemaskrough, ( ( value ) ));
1342  break;
1343  case 40:
1344  coerceValue(myNoisemaskroughoverride, clampMinValue(0, clampMaxValue(3, value ) ));
1345  break;
1346  case 41:
1347  coerceValue(myNoisemaskroughcurveattrib, ( ( value ) ));
1348  break;
1349  case 42:
1350  coerceValue(myNoisemaskroughattrib, ( ( value ) ));
1351  break;
1352  case 43:
1353  coerceValue(myNoisemaskroughtexture, ( ( value ) ));
1354  break;
1355  case 44:
1356  coerceValue(myUselengthmask, ( ( value ) ));
1357  break;
1358  case 45:
1359  coerceValue(myLengthmode, clampMinValue(0, clampMaxValue(4, value ) ));
1360  break;
1361  case 46:
1362  coerceValue(myLengthref, ( ( value ) ));
1363  break;
1364  case 47:
1365  coerceValue(myLengthrefoverride, clampMinValue(0, clampMaxValue(3, value ) ));
1366  break;
1367  case 48:
1368  coerceValue(myLengthrefcurveattrib, ( ( value ) ));
1369  break;
1370  case 49:
1371  coerceValue(myLengthrefattrib, ( ( value ) ));
1372  break;
1373  case 50:
1374  coerceValue(myLengthreftexture, ( ( value ) ));
1375  break;
1376  case 51:
1377  coerceValue(myLengthfalloffrange, ( ( value ) ));
1378  break;
1379  case 52:
1380  coerceValue(myLengthfalloffrangeoverride, clampMinValue(0, clampMaxValue(3, value ) ));
1381  break;
1382  case 53:
1383  coerceValue(myLengthfalloffrangecurveattrib, ( ( value ) ));
1384  break;
1385  case 54:
1386  coerceValue(myLengthfalloffrangeattrib, ( ( value ) ));
1387  break;
1388  case 55:
1389  coerceValue(myLengthfalloffrangetexture, ( ( value ) ));
1390  break;
1391  case 56:
1392  coerceValue(myLengthfalloffdecay, ( clampMaxValue(-05, value ) ));
1393  break;
1394  case 57:
1395  coerceValue(myLengthfalloffdecayoverride, clampMinValue(0, clampMaxValue(3, value ) ));
1396  break;
1397  case 58:
1398  coerceValue(myLengthfalloffdecaycurveattrib, ( ( value ) ));
1399  break;
1400  case 59:
1401  coerceValue(myLengthfalloffdecayattrib, ( ( value ) ));
1402  break;
1403  case 60:
1404  coerceValue(myLengthfalloffdecaytexture, ( ( value ) ));
1405  break;
1406  case 61:
1407  coerceValue(myLengthrangemin, clampMinValue(0, ( value ) ));
1408  break;
1409  case 62:
1410  coerceValue(myLengthrangemax, clampMinValue(0, ( value ) ));
1411  break;
1412  case 63:
1413  coerceValue(myLengthpresets, clampMinValue(0, clampMaxValue(2, value ) ));
1414  break;
1415  case 64:
1416  coerceValue(myLengthramp, clampMinValue(1, ( value ) ));
1417  break;
1418  case 65:
1419  coerceValue(myUseskincurvmask, ( ( value ) ));
1420  break;
1421  case 66:
1422  coerceValue(mySkincurvconcavemax, clampMinValue(0, clampMaxValue(1, value ) ));
1423  break;
1424  case 67:
1425  coerceValue(mySkincurvconvexmax, clampMinValue(0, clampMaxValue(1, value ) ));
1426  break;
1427  case 68:
1428  coerceValue(mySkincurvesmoothstrength, clampMinValue(0, ( value ) ));
1429  break;
1430  case 69:
1431  coerceValue(mySkincurvpresets, clampMinValue(0, clampMaxValue(5, value ) ));
1432  break;
1433  case 70:
1434  coerceValue(mySkincurvramp, clampMinValue(1, ( value ) ));
1435  break;
1436  case 71:
1437  coerceValue(myUsegeomask, ( ( value ) ));
1438  break;
1439  case 72:
1440  coerceValue(myGeovoxelsize, ( ( value ) ));
1441  break;
1442  case 73:
1443  coerceValue(myGeointrange, ( clampMaxValue(-05, value ) ));
1444  break;
1445  case 74:
1446  coerceValue(myGeoextrange, ( clampMaxValue(-05, value ) ));
1447  break;
1448  case 75:
1449  coerceValue(myGeodepthramppresets, clampMinValue(0, clampMaxValue(2, value ) ));
1450  break;
1451  case 76:
1452  coerceValue(myGeodepthramp, clampMinValue(1, ( value ) ));
1453  break;
1454  case 77:
1455  coerceValue(myGeodoblur, ( ( value ) ));
1456  break;
1457  case 78:
1458  coerceValue(myGeoblurradius, clampMinValue(0, ( value ) ));
1459  break;
1460  case 79:
1461  coerceValue(myGeobluriters, clampMinValue(1, ( value ) ));
1462  break;
1463  case 80:
1464  coerceValue(myUserandommask, ( ( value ) ));
1465  break;
1466  case 81:
1467  coerceValue(myRandommaskcombine, clampMinValue(0, clampMaxValue(2, value ) ));
1468  break;
1469  case 82:
1470  coerceValue(myRandommaskseed, ( ( value ) ));
1471  break;
1472  case 83:
1473  coerceValue(myRandommaskfrac, clampMinValue(0, clampMaxValue(1, value ) ));
1474  break;
1475  case 84:
1476  coerceValue(myRandommaskvar, clampMinValue(0, clampMaxValue(1, value ) ));
1477  break;
1478  case 85:
1479  coerceValue(myRandommaskvargain, clampMinValue(0, clampMaxValue(1, value ) ));
1480  break;
1481  case 86:
1482  coerceValue(myUsecurvemask, ( ( value ) ));
1483  break;
1484  case 87:
1485  coerceValue(myCurvemaskabsrange, ( ( value ) ));
1486  break;
1487  case 88:
1488  coerceValue(myCurvemaskrangemin, ( ( value ) ));
1489  break;
1490  case 89:
1491  coerceValue(myCurvemaskrangemax, ( ( value ) ));
1492  break;
1493  case 90:
1494  coerceValue(myCurvemaskeffectpos, clampMinValue(0, ( value ) ));
1495  break;
1496  case 91:
1497  coerceValue(myCurvemaskfalloff, clampMinValue(0, ( value ) ));
1498  break;
1499  case 92:
1500  coerceValue(myCurvemaskwidth, clampMinValue(0, ( value ) ));
1501  break;
1502  case 93:
1503  coerceValue(myCurvemaskramp, clampMinValue(1, ( value ) ));
1504  break;
1505  case 94:
1506  coerceValue(myUseskinlookupattribs, ( ( value ) ));
1507  break;
1508 
1509  }
1510  }
1511 
1512  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
1513  { doSetParmValue(idx, instance, value); }
1514  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
1515  { doSetParmValue(idx, instance, value); }
1516  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
1517  { doSetParmValue(idx, instance, value); }
1518  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
1519  { doSetParmValue(idx, instance, value); }
1520  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
1521  { doSetParmValue(idx, instance, value); }
1522  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
1523  { doSetParmValue(idx, instance, value); }
1524  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
1525  { doSetParmValue(idx, instance, value); }
1526  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
1527  { doSetParmValue(idx, instance, value); }
1528  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
1529  { doSetParmValue(idx, instance, value); }
1530  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
1531  { doSetParmValue(idx, instance, value); }
1532  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
1533  { doSetParmValue(idx, instance, value); }
1534 
1535  exint getNestNumParms(TempIndex idx) const override
1536  {
1537  if (idx.size() == 0)
1538  return 95;
1539  switch (idx[0])
1540  {
1541 
1542  }
1543  // Invalid
1544  return 0;
1545  }
1546 
1547  const char *getNestParmName(TempIndex fieldnum) const override
1548  {
1549  if (fieldnum.size() < 1)
1550  return 0;
1551  switch (fieldnum[0])
1552  {
1553  case 0:
1554  return "uvattrib";
1555  case 1:
1556  return "grouptype";
1557  case 2:
1558  return "group";
1559  case 3:
1560  return "zeroungrouped";
1561  case 4:
1562  return "inputmask";
1563  case 5:
1564  return "inputmaskoverride";
1565  case 6:
1566  return "inputmaskcurveattrib";
1567  case 7:
1568  return "inputmaskattrib";
1569  case 8:
1570  return "inputmasktexture";
1571  case 9:
1572  return "vismasks";
1573  case 10:
1574  return "outattribtype";
1575  case 11:
1576  return "outattrib";
1577  case 12:
1578  return "createprimgroup";
1579  case 13:
1580  return "outprimgroup";
1581  case 14:
1582  return "createintattrib";
1583  case 15:
1584  return "intattrib";
1585  case 16:
1586  return "intattribvalue";
1587  case 17:
1588  return "intattribthresh";
1589  case 18:
1590  return "usenoisemask";
1591  case 19:
1592  return "noisemaskamount";
1593  case 20:
1594  return "noisemaskamountoverride";
1595  case 21:
1596  return "noisemaskamountcurveattrib";
1597  case 22:
1598  return "noisemaskamountattrib";
1599  case 23:
1600  return "noisemaskamounttexture";
1601  case 24:
1602  return "noisemaskfreq";
1603  case 25:
1604  return "noisemaskgain";
1605  case 26:
1606  return "noisemaskgainoverride";
1607  case 27:
1608  return "noisemaskgaincurveattrib";
1609  case 28:
1610  return "noisemaskgainattrib";
1611  case 29:
1612  return "noisemaskgaintexture";
1613  case 30:
1614  return "noisemaskbias";
1615  case 31:
1616  return "noisemaskbiasoverride";
1617  case 32:
1618  return "noisemaskbiascurveattrib";
1619  case 33:
1620  return "noisemaskbiasattrib";
1621  case 34:
1622  return "noisemaskbiastexture";
1623  case 35:
1624  return "noisemaskcenterone";
1625  case 36:
1626  return "noisemaskfractal";
1627  case 37:
1628  return "noisemaskoct";
1629  case 38:
1630  return "noisemasklac";
1631  case 39:
1632  return "noisemaskrough";
1633  case 40:
1634  return "noisemaskroughoverride";
1635  case 41:
1636  return "noisemaskroughcurveattrib";
1637  case 42:
1638  return "noisemaskroughattrib";
1639  case 43:
1640  return "noisemaskroughtexture";
1641  case 44:
1642  return "uselengthmask";
1643  case 45:
1644  return "lengthmode";
1645  case 46:
1646  return "lengthref";
1647  case 47:
1648  return "lengthrefoverride";
1649  case 48:
1650  return "lengthrefcurveattrib";
1651  case 49:
1652  return "lengthrefattrib";
1653  case 50:
1654  return "lengthreftexture";
1655  case 51:
1656  return "lengthfalloffrange";
1657  case 52:
1658  return "lengthfalloffrangeoverride";
1659  case 53:
1660  return "lengthfalloffrangecurveattrib";
1661  case 54:
1662  return "lengthfalloffrangeattrib";
1663  case 55:
1664  return "lengthfalloffrangetexture";
1665  case 56:
1666  return "lengthfalloffdecay";
1667  case 57:
1668  return "lengthfalloffdecayoverride";
1669  case 58:
1670  return "lengthfalloffdecaycurveattrib";
1671  case 59:
1672  return "lengthfalloffdecayattrib";
1673  case 60:
1674  return "lengthfalloffdecaytexture";
1675  case 61:
1676  return "lengthrangemin";
1677  case 62:
1678  return "lengthrangemax";
1679  case 63:
1680  return "lengthpresets";
1681  case 64:
1682  return "lengthramp";
1683  case 65:
1684  return "useskincurvmask";
1685  case 66:
1686  return "skincurvconcavemax";
1687  case 67:
1688  return "skincurvconvexmax";
1689  case 68:
1690  return "skincurvesmoothstrength";
1691  case 69:
1692  return "skincurvpresets";
1693  case 70:
1694  return "skincurvramp";
1695  case 71:
1696  return "usegeomask";
1697  case 72:
1698  return "geovoxelsize";
1699  case 73:
1700  return "geointrange";
1701  case 74:
1702  return "geoextrange";
1703  case 75:
1704  return "geodepthramppresets";
1705  case 76:
1706  return "geodepthramp";
1707  case 77:
1708  return "geodoblur";
1709  case 78:
1710  return "geoblurradius";
1711  case 79:
1712  return "geobluriters";
1713  case 80:
1714  return "userandommask";
1715  case 81:
1716  return "randommaskcombine";
1717  case 82:
1718  return "randommaskseed";
1719  case 83:
1720  return "randommaskfrac";
1721  case 84:
1722  return "randommaskvar";
1723  case 85:
1724  return "randommaskvargain";
1725  case 86:
1726  return "usecurvemask";
1727  case 87:
1728  return "curvemaskabsrange";
1729  case 88:
1730  return "curvemaskrangemin";
1731  case 89:
1732  return "curvemaskrangemax";
1733  case 90:
1734  return "curvemaskeffectpos";
1735  case 91:
1736  return "curvemaskfalloff";
1737  case 92:
1738  return "curvemaskwidth";
1739  case 93:
1740  return "curvemaskramp";
1741  case 94:
1742  return "useskinlookupattribs";
1743 
1744  }
1745  return 0;
1746  }
1747 
1748  ParmType getNestParmType(TempIndex fieldnum) const override
1749  {
1750  if (fieldnum.size() < 1)
1751  return PARM_UNSUPPORTED;
1752  switch (fieldnum[0])
1753  {
1754  case 0:
1755  return PARM_STRING;
1756  case 1:
1757  return PARM_INTEGER;
1758  case 2:
1759  return PARM_STRING;
1760  case 3:
1761  return PARM_INTEGER;
1762  case 4:
1763  return PARM_FLOAT;
1764  case 5:
1765  return PARM_INTEGER;
1766  case 6:
1767  return PARM_STRING;
1768  case 7:
1769  return PARM_STRING;
1770  case 8:
1771  return PARM_STRING;
1772  case 9:
1773  return PARM_INTEGER;
1774  case 10:
1775  return PARM_INTEGER;
1776  case 11:
1777  return PARM_STRING;
1778  case 12:
1779  return PARM_INTEGER;
1780  case 13:
1781  return PARM_STRING;
1782  case 14:
1783  return PARM_INTEGER;
1784  case 15:
1785  return PARM_STRING;
1786  case 16:
1787  return PARM_INTEGER;
1788  case 17:
1789  return PARM_FLOAT;
1790  case 18:
1791  return PARM_INTEGER;
1792  case 19:
1793  return PARM_FLOAT;
1794  case 20:
1795  return PARM_INTEGER;
1796  case 21:
1797  return PARM_STRING;
1798  case 22:
1799  return PARM_STRING;
1800  case 23:
1801  return PARM_STRING;
1802  case 24:
1803  return PARM_FLOAT;
1804  case 25:
1805  return PARM_FLOAT;
1806  case 26:
1807  return PARM_INTEGER;
1808  case 27:
1809  return PARM_STRING;
1810  case 28:
1811  return PARM_STRING;
1812  case 29:
1813  return PARM_STRING;
1814  case 30:
1815  return PARM_FLOAT;
1816  case 31:
1817  return PARM_INTEGER;
1818  case 32:
1819  return PARM_STRING;
1820  case 33:
1821  return PARM_STRING;
1822  case 34:
1823  return PARM_STRING;
1824  case 35:
1825  return PARM_INTEGER;
1826  case 36:
1827  return PARM_INTEGER;
1828  case 37:
1829  return PARM_FLOAT;
1830  case 38:
1831  return PARM_FLOAT;
1832  case 39:
1833  return PARM_FLOAT;
1834  case 40:
1835  return PARM_INTEGER;
1836  case 41:
1837  return PARM_STRING;
1838  case 42:
1839  return PARM_STRING;
1840  case 43:
1841  return PARM_STRING;
1842  case 44:
1843  return PARM_INTEGER;
1844  case 45:
1845  return PARM_INTEGER;
1846  case 46:
1847  return PARM_FLOAT;
1848  case 47:
1849  return PARM_INTEGER;
1850  case 48:
1851  return PARM_STRING;
1852  case 49:
1853  return PARM_STRING;
1854  case 50:
1855  return PARM_STRING;
1856  case 51:
1857  return PARM_FLOAT;
1858  case 52:
1859  return PARM_INTEGER;
1860  case 53:
1861  return PARM_STRING;
1862  case 54:
1863  return PARM_STRING;
1864  case 55:
1865  return PARM_STRING;
1866  case 56:
1867  return PARM_FLOAT;
1868  case 57:
1869  return PARM_INTEGER;
1870  case 58:
1871  return PARM_STRING;
1872  case 59:
1873  return PARM_STRING;
1874  case 60:
1875  return PARM_STRING;
1876  case 61:
1877  return PARM_FLOAT;
1878  case 62:
1879  return PARM_FLOAT;
1880  case 63:
1881  return PARM_INTEGER;
1882  case 64:
1883  return PARM_RAMP;
1884  case 65:
1885  return PARM_INTEGER;
1886  case 66:
1887  return PARM_FLOAT;
1888  case 67:
1889  return PARM_FLOAT;
1890  case 68:
1891  return PARM_FLOAT;
1892  case 69:
1893  return PARM_INTEGER;
1894  case 70:
1895  return PARM_RAMP;
1896  case 71:
1897  return PARM_INTEGER;
1898  case 72:
1899  return PARM_FLOAT;
1900  case 73:
1901  return PARM_FLOAT;
1902  case 74:
1903  return PARM_FLOAT;
1904  case 75:
1905  return PARM_INTEGER;
1906  case 76:
1907  return PARM_RAMP;
1908  case 77:
1909  return PARM_INTEGER;
1910  case 78:
1911  return PARM_FLOAT;
1912  case 79:
1913  return PARM_INTEGER;
1914  case 80:
1915  return PARM_INTEGER;
1916  case 81:
1917  return PARM_INTEGER;
1918  case 82:
1919  return PARM_FLOAT;
1920  case 83:
1921  return PARM_FLOAT;
1922  case 84:
1923  return PARM_FLOAT;
1924  case 85:
1925  return PARM_FLOAT;
1926  case 86:
1927  return PARM_INTEGER;
1928  case 87:
1929  return PARM_INTEGER;
1930  case 88:
1931  return PARM_FLOAT;
1932  case 89:
1933  return PARM_FLOAT;
1934  case 90:
1935  return PARM_FLOAT;
1936  case 91:
1937  return PARM_FLOAT;
1938  case 92:
1939  return PARM_FLOAT;
1940  case 93:
1941  return PARM_RAMP;
1942  case 94:
1943  return PARM_INTEGER;
1944 
1945  }
1946  return PARM_UNSUPPORTED;
1947  }
1948 
1949  // Boiler plate to load individual types.
1950  static void loadData(UT_IStream &is, int64 &v)
1951  { is.bread(&v, 1); }
1952  static void loadData(UT_IStream &is, bool &v)
1953  { int64 iv; is.bread(&iv, 1); v = iv; }
1954  static void loadData(UT_IStream &is, fpreal64 &v)
1955  { is.bread<fpreal64>(&v, 1); }
1956  static void loadData(UT_IStream &is, UT_Vector2D &v)
1957  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
1958  static void loadData(UT_IStream &is, UT_Vector3D &v)
1959  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
1960  is.bread<fpreal64>(&v.z(), 1); }
1961  static void loadData(UT_IStream &is, UT_Vector4D &v)
1962  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
1963  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
1964  static void loadData(UT_IStream &is, UT_Matrix2D &v)
1965  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
1966  static void loadData(UT_IStream &is, UT_Matrix3D &v)
1967  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
1968  static void loadData(UT_IStream &is, UT_Matrix4D &v)
1969  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
1970  static void loadData(UT_IStream &is, UT_Vector2I &v)
1971  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
1972  static void loadData(UT_IStream &is, UT_Vector3I &v)
1973  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
1974  is.bread<int64>(&v.z(), 1); }
1975  static void loadData(UT_IStream &is, UT_Vector4I &v)
1976  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
1977  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
1979  { is.bread(v); }
1981  { UT_StringHolder rampdata;
1982  loadData(is, rampdata);
1983  if (rampdata.isstring())
1984  {
1985  v.reset(new UT_Ramp());
1986  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
1987  v->load(istr);
1988  }
1989  else v.reset();
1990  }
1993  loadData(is, data);
1994  if (data.isstring())
1995  {
1996  // Find the data type.
1997  const char *colon = UT_StringWrap(data).findChar(':');
1998  if (colon)
1999  {
2000  int typelen = colon - data.buffer();
2002  type.strncpy(data.buffer(), typelen);
2003  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
2004 
2005  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
2006  }
2007  }
2008  else v.reset();
2009  }
2010 
2011  static void saveData(std::ostream &os, int64 v)
2012  { UTwrite(os, &v); }
2013  static void saveData(std::ostream &os, bool v)
2014  { int64 iv = v; UTwrite(os, &iv); }
2015  static void saveData(std::ostream &os, fpreal64 v)
2016  { UTwrite<fpreal64>(os, &v); }
2017  static void saveData(std::ostream &os, UT_Vector2D v)
2018  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
2019  static void saveData(std::ostream &os, UT_Vector3D v)
2020  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
2021  UTwrite<fpreal64>(os, &v.z()); }
2022  static void saveData(std::ostream &os, UT_Vector4D v)
2023  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
2024  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
2025  static void saveData(std::ostream &os, UT_Matrix2D v)
2027  static void saveData(std::ostream &os, UT_Matrix3D v)
2029  static void saveData(std::ostream &os, UT_Matrix4D v)
2031  static void saveData(std::ostream &os, UT_StringHolder s)
2032  { UT_StringWrap(s).saveBinary(os); }
2033  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
2035  UT_OStringStream ostr;
2036  if (s) s->save(ostr);
2037  result = ostr.str();
2038  saveData(os, result);
2039  }
2040  static void saveData(std::ostream &os, PRM_DataItemHandle s)
2042  UT_OStringStream ostr;
2043  if (s)
2044  {
2045  ostr << s->getDataTypeToken();
2046  ostr << ":";
2047  s->saveBinary(ostr);
2048  }
2049  result = ostr.str();
2050  saveData(os, result);
2051  }
2052 
2053 
2054  void save(std::ostream &os) const
2055  {
2056  int32 v = version();
2057  UTwrite(os, &v);
2058  saveData(os, myUvattrib);
2059  saveData(os, myGrouptype);
2060  saveData(os, myGroup);
2061  saveData(os, myZeroungrouped);
2062  saveData(os, myInputmask);
2063  saveData(os, myInputmaskoverride);
2064  saveData(os, myInputmaskcurveattrib);
2065  saveData(os, myInputmaskattrib);
2066  saveData(os, myInputmasktexture);
2067  saveData(os, myVismasks);
2068  saveData(os, myOutattribtype);
2069  saveData(os, myOutattrib);
2070  saveData(os, myCreateprimgroup);
2071  saveData(os, myOutprimgroup);
2072  saveData(os, myCreateintattrib);
2073  saveData(os, myIntattrib);
2074  saveData(os, myIntattribvalue);
2075  saveData(os, myIntattribthresh);
2076  saveData(os, myUsenoisemask);
2077  saveData(os, myNoisemaskamount);
2078  saveData(os, myNoisemaskamountoverride);
2079  saveData(os, myNoisemaskamountcurveattrib);
2080  saveData(os, myNoisemaskamountattrib);
2081  saveData(os, myNoisemaskamounttexture);
2082  saveData(os, myNoisemaskfreq);
2083  saveData(os, myNoisemaskgain);
2084  saveData(os, myNoisemaskgainoverride);
2085  saveData(os, myNoisemaskgaincurveattrib);
2086  saveData(os, myNoisemaskgainattrib);
2087  saveData(os, myNoisemaskgaintexture);
2088  saveData(os, myNoisemaskbias);
2089  saveData(os, myNoisemaskbiasoverride);
2090  saveData(os, myNoisemaskbiascurveattrib);
2091  saveData(os, myNoisemaskbiasattrib);
2092  saveData(os, myNoisemaskbiastexture);
2093  saveData(os, myNoisemaskcenterone);
2094  saveData(os, myNoisemaskfractal);
2095  saveData(os, myNoisemaskoct);
2096  saveData(os, myNoisemasklac);
2097  saveData(os, myNoisemaskrough);
2098  saveData(os, myNoisemaskroughoverride);
2099  saveData(os, myNoisemaskroughcurveattrib);
2100  saveData(os, myNoisemaskroughattrib);
2101  saveData(os, myNoisemaskroughtexture);
2102  saveData(os, myUselengthmask);
2103  saveData(os, myLengthmode);
2104  saveData(os, myLengthref);
2105  saveData(os, myLengthrefoverride);
2106  saveData(os, myLengthrefcurveattrib);
2107  saveData(os, myLengthrefattrib);
2108  saveData(os, myLengthreftexture);
2109  saveData(os, myLengthfalloffrange);
2110  saveData(os, myLengthfalloffrangeoverride);
2111  saveData(os, myLengthfalloffrangecurveattrib);
2112  saveData(os, myLengthfalloffrangeattrib);
2113  saveData(os, myLengthfalloffrangetexture);
2114  saveData(os, myLengthfalloffdecay);
2115  saveData(os, myLengthfalloffdecayoverride);
2116  saveData(os, myLengthfalloffdecaycurveattrib);
2117  saveData(os, myLengthfalloffdecayattrib);
2118  saveData(os, myLengthfalloffdecaytexture);
2119  saveData(os, myLengthrangemin);
2120  saveData(os, myLengthrangemax);
2121  saveData(os, myLengthpresets);
2122  saveData(os, myLengthramp);
2123  saveData(os, myUseskincurvmask);
2124  saveData(os, mySkincurvconcavemax);
2125  saveData(os, mySkincurvconvexmax);
2126  saveData(os, mySkincurvesmoothstrength);
2127  saveData(os, mySkincurvpresets);
2128  saveData(os, mySkincurvramp);
2129  saveData(os, myUsegeomask);
2130  saveData(os, myGeovoxelsize);
2131  saveData(os, myGeointrange);
2132  saveData(os, myGeoextrange);
2133  saveData(os, myGeodepthramppresets);
2134  saveData(os, myGeodepthramp);
2135  saveData(os, myGeodoblur);
2136  saveData(os, myGeoblurradius);
2137  saveData(os, myGeobluriters);
2138  saveData(os, myUserandommask);
2139  saveData(os, myRandommaskcombine);
2140  saveData(os, myRandommaskseed);
2141  saveData(os, myRandommaskfrac);
2142  saveData(os, myRandommaskvar);
2143  saveData(os, myRandommaskvargain);
2144  saveData(os, myUsecurvemask);
2145  saveData(os, myCurvemaskabsrange);
2146  saveData(os, myCurvemaskrangemin);
2147  saveData(os, myCurvemaskrangemax);
2148  saveData(os, myCurvemaskeffectpos);
2149  saveData(os, myCurvemaskfalloff);
2150  saveData(os, myCurvemaskwidth);
2151  saveData(os, myCurvemaskramp);
2152  saveData(os, myUseskinlookupattribs);
2153 
2154  }
2155 
2156  bool load(UT_IStream &is)
2157  {
2158  int32 v;
2159  is.bread(&v, 1);
2160  if (version() != v)
2161  {
2162  // Fail incompatible versions
2163  return false;
2164  }
2165  loadData(is, myUvattrib);
2166  loadData(is, myGrouptype);
2167  loadData(is, myGroup);
2168  loadData(is, myZeroungrouped);
2169  loadData(is, myInputmask);
2170  loadData(is, myInputmaskoverride);
2171  loadData(is, myInputmaskcurveattrib);
2172  loadData(is, myInputmaskattrib);
2173  loadData(is, myInputmasktexture);
2174  loadData(is, myVismasks);
2175  loadData(is, myOutattribtype);
2176  loadData(is, myOutattrib);
2177  loadData(is, myCreateprimgroup);
2178  loadData(is, myOutprimgroup);
2179  loadData(is, myCreateintattrib);
2180  loadData(is, myIntattrib);
2181  loadData(is, myIntattribvalue);
2182  loadData(is, myIntattribthresh);
2183  loadData(is, myUsenoisemask);
2184  loadData(is, myNoisemaskamount);
2185  loadData(is, myNoisemaskamountoverride);
2186  loadData(is, myNoisemaskamountcurveattrib);
2187  loadData(is, myNoisemaskamountattrib);
2188  loadData(is, myNoisemaskamounttexture);
2189  loadData(is, myNoisemaskfreq);
2190  loadData(is, myNoisemaskgain);
2191  loadData(is, myNoisemaskgainoverride);
2192  loadData(is, myNoisemaskgaincurveattrib);
2193  loadData(is, myNoisemaskgainattrib);
2194  loadData(is, myNoisemaskgaintexture);
2195  loadData(is, myNoisemaskbias);
2196  loadData(is, myNoisemaskbiasoverride);
2197  loadData(is, myNoisemaskbiascurveattrib);
2198  loadData(is, myNoisemaskbiasattrib);
2199  loadData(is, myNoisemaskbiastexture);
2200  loadData(is, myNoisemaskcenterone);
2201  loadData(is, myNoisemaskfractal);
2202  loadData(is, myNoisemaskoct);
2203  loadData(is, myNoisemasklac);
2204  loadData(is, myNoisemaskrough);
2205  loadData(is, myNoisemaskroughoverride);
2206  loadData(is, myNoisemaskroughcurveattrib);
2207  loadData(is, myNoisemaskroughattrib);
2208  loadData(is, myNoisemaskroughtexture);
2209  loadData(is, myUselengthmask);
2210  loadData(is, myLengthmode);
2211  loadData(is, myLengthref);
2212  loadData(is, myLengthrefoverride);
2213  loadData(is, myLengthrefcurveattrib);
2214  loadData(is, myLengthrefattrib);
2215  loadData(is, myLengthreftexture);
2216  loadData(is, myLengthfalloffrange);
2217  loadData(is, myLengthfalloffrangeoverride);
2218  loadData(is, myLengthfalloffrangecurveattrib);
2219  loadData(is, myLengthfalloffrangeattrib);
2220  loadData(is, myLengthfalloffrangetexture);
2221  loadData(is, myLengthfalloffdecay);
2222  loadData(is, myLengthfalloffdecayoverride);
2223  loadData(is, myLengthfalloffdecaycurveattrib);
2224  loadData(is, myLengthfalloffdecayattrib);
2225  loadData(is, myLengthfalloffdecaytexture);
2226  loadData(is, myLengthrangemin);
2227  loadData(is, myLengthrangemax);
2228  loadData(is, myLengthpresets);
2229  loadData(is, myLengthramp);
2230  loadData(is, myUseskincurvmask);
2231  loadData(is, mySkincurvconcavemax);
2232  loadData(is, mySkincurvconvexmax);
2233  loadData(is, mySkincurvesmoothstrength);
2234  loadData(is, mySkincurvpresets);
2235  loadData(is, mySkincurvramp);
2236  loadData(is, myUsegeomask);
2237  loadData(is, myGeovoxelsize);
2238  loadData(is, myGeointrange);
2239  loadData(is, myGeoextrange);
2240  loadData(is, myGeodepthramppresets);
2241  loadData(is, myGeodepthramp);
2242  loadData(is, myGeodoblur);
2243  loadData(is, myGeoblurradius);
2244  loadData(is, myGeobluriters);
2245  loadData(is, myUserandommask);
2246  loadData(is, myRandommaskcombine);
2247  loadData(is, myRandommaskseed);
2248  loadData(is, myRandommaskfrac);
2249  loadData(is, myRandommaskvar);
2250  loadData(is, myRandommaskvargain);
2251  loadData(is, myUsecurvemask);
2252  loadData(is, myCurvemaskabsrange);
2253  loadData(is, myCurvemaskrangemin);
2254  loadData(is, myCurvemaskrangemax);
2255  loadData(is, myCurvemaskeffectpos);
2256  loadData(is, myCurvemaskfalloff);
2257  loadData(is, myCurvemaskwidth);
2258  loadData(is, myCurvemaskramp);
2259  loadData(is, myUseskinlookupattribs);
2260 
2261  return true;
2262  }
2263 
2264  const UT_StringHolder & getUvattrib() const { return myUvattrib; }
2265  void setUvattrib(const UT_StringHolder & val) { myUvattrib = val; }
2267  {
2268  SOP_Node *thissop = cookparms.getNode();
2269  if (!thissop) return getUvattrib();
2271  OP_Utils::evalOpParm(result, thissop, "uvattrib", cookparms.getCookTime(), 0);
2272  return result;
2273  }
2274  Grouptype getGrouptype() const { return Grouptype(myGrouptype); }
2275  void setGrouptype(Grouptype val) { myGrouptype = int64(val); }
2277  {
2278  SOP_Node *thissop = cookparms.getNode();
2279  if (!thissop) return getGrouptype();
2280  int64 result;
2281  OP_Utils::evalOpParm(result, thissop, "grouptype", cookparms.getCookTime(), 0);
2282  return Grouptype(result);
2283  }
2284  const UT_StringHolder & getGroup() const { return myGroup; }
2285  void setGroup(const UT_StringHolder & val) { myGroup = val; }
2287  {
2288  SOP_Node *thissop = cookparms.getNode();
2289  if (!thissop) return getGroup();
2291  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
2292  return result;
2293  }
2294  bool getZeroungrouped() const { return myZeroungrouped; }
2295  void setZeroungrouped(bool val) { myZeroungrouped = val; }
2296  bool opZeroungrouped(const SOP_NodeVerb::CookParms &cookparms) const
2297  {
2298  SOP_Node *thissop = cookparms.getNode();
2299  if (!thissop) return getZeroungrouped();
2300  bool result;
2301  OP_Utils::evalOpParm(result, thissop, "zeroungrouped", cookparms.getCookTime(), 0);
2302  return result;
2303  }
2304  fpreal64 getInputmask() const { return myInputmask; }
2305  void setInputmask(fpreal64 val) { myInputmask = val; }
2307  {
2308  SOP_Node *thissop = cookparms.getNode();
2309  if (!thissop) return getInputmask();
2310  fpreal64 result;
2311  OP_Utils::evalOpParm(result, thissop, "inputmask", cookparms.getCookTime(), 0);
2312  return result;
2313  }
2314  Inputmaskoverride getInputmaskoverride() const { return Inputmaskoverride(myInputmaskoverride); }
2315  void setInputmaskoverride(Inputmaskoverride val) { myInputmaskoverride = int64(val); }
2317  {
2318  SOP_Node *thissop = cookparms.getNode();
2319  if (!thissop) return getInputmaskoverride();
2320  int64 result;
2321  OP_Utils::evalOpParm(result, thissop, "inputmaskoverride", cookparms.getCookTime(), 0);
2322  return Inputmaskoverride(result);
2323  }
2324  const UT_StringHolder & getInputmaskcurveattrib() const { return myInputmaskcurveattrib; }
2325  void setInputmaskcurveattrib(const UT_StringHolder & val) { myInputmaskcurveattrib = val; }
2327  {
2328  SOP_Node *thissop = cookparms.getNode();
2329  if (!thissop) return getInputmaskcurveattrib();
2331  OP_Utils::evalOpParm(result, thissop, "inputmaskcurveattrib", cookparms.getCookTime(), 0);
2332  return result;
2333  }
2334  const UT_StringHolder & getInputmaskattrib() const { return myInputmaskattrib; }
2335  void setInputmaskattrib(const UT_StringHolder & val) { myInputmaskattrib = val; }
2337  {
2338  SOP_Node *thissop = cookparms.getNode();
2339  if (!thissop) return getInputmaskattrib();
2341  OP_Utils::evalOpParm(result, thissop, "inputmaskattrib", cookparms.getCookTime(), 0);
2342  return result;
2343  }
2344  const UT_StringHolder & getInputmasktexture() const { return myInputmasktexture; }
2345  void setInputmasktexture(const UT_StringHolder & val) { myInputmasktexture = val; }
2347  {
2348  SOP_Node *thissop = cookparms.getNode();
2349  if (!thissop) return getInputmasktexture();
2351  OP_Utils::evalOpParm(result, thissop, "inputmasktexture", cookparms.getCookTime(), 0);
2352  return result;
2353  }
2354  bool getVismasks() const { return myVismasks; }
2355  void setVismasks(bool val) { myVismasks = val; }
2356  bool opVismasks(const SOP_NodeVerb::CookParms &cookparms) const
2357  {
2358  SOP_Node *thissop = cookparms.getNode();
2359  if (!thissop) return getVismasks();
2360  bool result;
2361  OP_Utils::evalOpParm(result, thissop, "vismasks", cookparms.getCookTime(), 0);
2362  return result;
2363  }
2364  Outattribtype getOutattribtype() const { return Outattribtype(myOutattribtype); }
2365  void setOutattribtype(Outattribtype val) { myOutattribtype = int64(val); }
2367  {
2368  SOP_Node *thissop = cookparms.getNode();
2369  if (!thissop) return getOutattribtype();
2370  int64 result;
2371  OP_Utils::evalOpParm(result, thissop, "outattribtype", cookparms.getCookTime(), 0);
2372  return Outattribtype(result);
2373  }
2374  const UT_StringHolder & getOutattrib() const { return myOutattrib; }
2375  void setOutattrib(const UT_StringHolder & val) { myOutattrib = val; }
2377  {
2378  SOP_Node *thissop = cookparms.getNode();
2379  if (!thissop) return getOutattrib();
2381  OP_Utils::evalOpParm(result, thissop, "outattrib", cookparms.getCookTime(), 0);
2382  return result;
2383  }
2384  bool getCreateprimgroup() const { return myCreateprimgroup; }
2385  void setCreateprimgroup(bool val) { myCreateprimgroup = val; }
2386  bool opCreateprimgroup(const SOP_NodeVerb::CookParms &cookparms) const
2387  {
2388  SOP_Node *thissop = cookparms.getNode();
2389  if (!thissop) return getCreateprimgroup();
2390  bool result;
2391  OP_Utils::evalOpParm(result, thissop, "createprimgroup", cookparms.getCookTime(), 0);
2392  return result;
2393  }
2394  const UT_StringHolder & getOutprimgroup() const { return myOutprimgroup; }
2395  void setOutprimgroup(const UT_StringHolder & val) { myOutprimgroup = val; }
2397  {
2398  SOP_Node *thissop = cookparms.getNode();
2399  if (!thissop) return getOutprimgroup();
2401  OP_Utils::evalOpParm(result, thissop, "outprimgroup", cookparms.getCookTime(), 0);
2402  return result;
2403  }
2404  bool getCreateintattrib() const { return myCreateintattrib; }
2405  void setCreateintattrib(bool val) { myCreateintattrib = val; }
2406  bool opCreateintattrib(const SOP_NodeVerb::CookParms &cookparms) const
2407  {
2408  SOP_Node *thissop = cookparms.getNode();
2409  if (!thissop) return getCreateintattrib();
2410  bool result;
2411  OP_Utils::evalOpParm(result, thissop, "createintattrib", cookparms.getCookTime(), 0);
2412  return result;
2413  }
2414  const UT_StringHolder & getIntattrib() const { return myIntattrib; }
2415  void setIntattrib(const UT_StringHolder & val) { myIntattrib = val; }
2417  {
2418  SOP_Node *thissop = cookparms.getNode();
2419  if (!thissop) return getIntattrib();
2421  OP_Utils::evalOpParm(result, thissop, "intattrib", cookparms.getCookTime(), 0);
2422  return result;
2423  }
2424  int64 getIntattribvalue() const { return myIntattribvalue; }
2425  void setIntattribvalue(int64 val) { myIntattribvalue = val; }
2427  {
2428  SOP_Node *thissop = cookparms.getNode();
2429  if (!thissop) return getIntattribvalue();
2430  int64 result;
2431  OP_Utils::evalOpParm(result, thissop, "intattribvalue", cookparms.getCookTime(), 0);
2432  return result;
2433  }
2434  fpreal64 getIntattribthresh() const { return myIntattribthresh; }
2435  void setIntattribthresh(fpreal64 val) { myIntattribthresh = val; }
2437  {
2438  SOP_Node *thissop = cookparms.getNode();
2439  if (!thissop) return getIntattribthresh();
2440  fpreal64 result;
2441  OP_Utils::evalOpParm(result, thissop, "intattribthresh", cookparms.getCookTime(), 0);
2442  return result;
2443  }
2444  bool getUsenoisemask() const { return myUsenoisemask; }
2445  void setUsenoisemask(bool val) { myUsenoisemask = val; }
2446  bool opUsenoisemask(const SOP_NodeVerb::CookParms &cookparms) const
2447  {
2448  SOP_Node *thissop = cookparms.getNode();
2449  if (!thissop) return getUsenoisemask();
2450  bool result;
2451  OP_Utils::evalOpParm(result, thissop, "usenoisemask", cookparms.getCookTime(), 0);
2452  return result;
2453  }
2454  fpreal64 getNoisemaskamount() const { return myNoisemaskamount; }
2455  void setNoisemaskamount(fpreal64 val) { myNoisemaskamount = val; }
2457  {
2458  SOP_Node *thissop = cookparms.getNode();
2459  if (!thissop) return getNoisemaskamount();
2460  fpreal64 result;
2461  OP_Utils::evalOpParm(result, thissop, "noisemaskamount", cookparms.getCookTime(), 0);
2462  return result;
2463  }
2464  Noisemaskamountoverride getNoisemaskamountoverride() const { return Noisemaskamountoverride(myNoisemaskamountoverride); }
2465  void setNoisemaskamountoverride(Noisemaskamountoverride val) { myNoisemaskamountoverride = int64(val); }
2467  {
2468  SOP_Node *thissop = cookparms.getNode();
2469  if (!thissop) return getNoisemaskamountoverride();
2470  int64 result;
2471  OP_Utils::evalOpParm(result, thissop, "noisemaskamountoverride", cookparms.getCookTime(), 0);
2472  return Noisemaskamountoverride(result);
2473  }
2474  const UT_StringHolder & getNoisemaskamountcurveattrib() const { return myNoisemaskamountcurveattrib; }
2475  void setNoisemaskamountcurveattrib(const UT_StringHolder & val) { myNoisemaskamountcurveattrib = val; }
2477  {
2478  SOP_Node *thissop = cookparms.getNode();
2479  if (!thissop) return getNoisemaskamountcurveattrib();
2481  OP_Utils::evalOpParm(result, thissop, "noisemaskamountcurveattrib", cookparms.getCookTime(), 0);
2482  return result;
2483  }
2484  const UT_StringHolder & getNoisemaskamountattrib() const { return myNoisemaskamountattrib; }
2485  void setNoisemaskamountattrib(const UT_StringHolder & val) { myNoisemaskamountattrib = val; }
2487  {
2488  SOP_Node *thissop = cookparms.getNode();
2489  if (!thissop) return getNoisemaskamountattrib();
2491  OP_Utils::evalOpParm(result, thissop, "noisemaskamountattrib", cookparms.getCookTime(), 0);
2492  return result;
2493  }
2494  const UT_StringHolder & getNoisemaskamounttexture() const { return myNoisemaskamounttexture; }
2495  void setNoisemaskamounttexture(const UT_StringHolder & val) { myNoisemaskamounttexture = val; }
2497  {
2498  SOP_Node *thissop = cookparms.getNode();
2499  if (!thissop) return getNoisemaskamounttexture();
2501  OP_Utils::evalOpParm(result, thissop, "noisemaskamounttexture", cookparms.getCookTime(), 0);
2502  return result;
2503  }
2504  fpreal64 getNoisemaskfreq() const { return myNoisemaskfreq; }
2505  void setNoisemaskfreq(fpreal64 val) { myNoisemaskfreq = val; }
2507  {
2508  SOP_Node *thissop = cookparms.getNode();
2509  if (!thissop) return getNoisemaskfreq();
2510  fpreal64 result;
2511  OP_Utils::evalOpParm(result, thissop, "noisemaskfreq", cookparms.getCookTime(), 0);
2512  return result;
2513  }
2514  fpreal64 getNoisemaskgain() const { return myNoisemaskgain; }
2515  void setNoisemaskgain(fpreal64 val) { myNoisemaskgain = val; }
2517  {
2518  SOP_Node *thissop = cookparms.getNode();
2519  if (!thissop) return getNoisemaskgain();
2520  fpreal64 result;
2521  OP_Utils::evalOpParm(result, thissop, "noisemaskgain", cookparms.getCookTime(), 0);
2522  return result;
2523  }
2524  Noisemaskgainoverride getNoisemaskgainoverride() const { return Noisemaskgainoverride(myNoisemaskgainoverride); }
2525  void setNoisemaskgainoverride(Noisemaskgainoverride val) { myNoisemaskgainoverride = int64(val); }
2527  {
2528  SOP_Node *thissop = cookparms.getNode();
2529  if (!thissop) return getNoisemaskgainoverride();
2530  int64 result;
2531  OP_Utils::evalOpParm(result, thissop, "noisemaskgainoverride", cookparms.getCookTime(), 0);
2532  return Noisemaskgainoverride(result);
2533  }
2534  const UT_StringHolder & getNoisemaskgaincurveattrib() const { return myNoisemaskgaincurveattrib; }
2535  void setNoisemaskgaincurveattrib(const UT_StringHolder & val) { myNoisemaskgaincurveattrib = val; }
2537  {
2538  SOP_Node *thissop = cookparms.getNode();
2539  if (!thissop) return getNoisemaskgaincurveattrib();
2541  OP_Utils::evalOpParm(result, thissop, "noisemaskgaincurveattrib", cookparms.getCookTime(), 0);
2542  return result;
2543  }
2544  const UT_StringHolder & getNoisemaskgainattrib() const { return myNoisemaskgainattrib; }
2545  void setNoisemaskgainattrib(const UT_StringHolder & val) { myNoisemaskgainattrib = val; }
2547  {
2548  SOP_Node *thissop = cookparms.getNode();
2549  if (!thissop) return getNoisemaskgainattrib();
2551  OP_Utils::evalOpParm(result, thissop, "noisemaskgainattrib", cookparms.getCookTime(), 0);
2552  return result;
2553  }
2554  const UT_StringHolder & getNoisemaskgaintexture() const { return myNoisemaskgaintexture; }
2555  void setNoisemaskgaintexture(const UT_StringHolder & val) { myNoisemaskgaintexture = val; }
2557  {
2558  SOP_Node *thissop = cookparms.getNode();
2559  if (!thissop) return getNoisemaskgaintexture();
2561  OP_Utils::evalOpParm(result, thissop, "noisemaskgaintexture", cookparms.getCookTime(), 0);
2562  return result;
2563  }
2564  fpreal64 getNoisemaskbias() const { return myNoisemaskbias; }
2565  void setNoisemaskbias(fpreal64 val) { myNoisemaskbias = val; }
2567  {
2568  SOP_Node *thissop = cookparms.getNode();
2569  if (!thissop) return getNoisemaskbias();
2570  fpreal64 result;
2571  OP_Utils::evalOpParm(result, thissop, "noisemaskbias", cookparms.getCookTime(), 0);
2572  return result;
2573  }
2574  Noisemaskbiasoverride getNoisemaskbiasoverride() const { return Noisemaskbiasoverride(myNoisemaskbiasoverride); }
2575  void setNoisemaskbiasoverride(Noisemaskbiasoverride val) { myNoisemaskbiasoverride = int64(val); }
2577  {
2578  SOP_Node *thissop = cookparms.getNode();
2579  if (!thissop) return getNoisemaskbiasoverride();
2580  int64 result;
2581  OP_Utils::evalOpParm(result, thissop, "noisemaskbiasoverride", cookparms.getCookTime(), 0);
2582  return Noisemaskbiasoverride(result);
2583  }
2584  const UT_StringHolder & getNoisemaskbiascurveattrib() const { return myNoisemaskbiascurveattrib; }
2585  void setNoisemaskbiascurveattrib(const UT_StringHolder & val) { myNoisemaskbiascurveattrib = val; }
2587  {
2588  SOP_Node *thissop = cookparms.getNode();
2589  if (!thissop) return getNoisemaskbiascurveattrib();
2591  OP_Utils::evalOpParm(result, thissop, "noisemaskbiascurveattrib", cookparms.getCookTime(), 0);
2592  return result;
2593  }
2594  const UT_StringHolder & getNoisemaskbiasattrib() const { return myNoisemaskbiasattrib; }
2595  void setNoisemaskbiasattrib(const UT_StringHolder & val) { myNoisemaskbiasattrib = val; }
2597  {
2598  SOP_Node *thissop = cookparms.getNode();
2599  if (!thissop) return getNoisemaskbiasattrib();
2601  OP_Utils::evalOpParm(result, thissop, "noisemaskbiasattrib", cookparms.getCookTime(), 0);
2602  return result;
2603  }
2604  const UT_StringHolder & getNoisemaskbiastexture() const { return myNoisemaskbiastexture; }
2605  void setNoisemaskbiastexture(const UT_StringHolder & val) { myNoisemaskbiastexture = val; }
2607  {
2608  SOP_Node *thissop = cookparms.getNode();
2609  if (!thissop) return getNoisemaskbiastexture();
2611  OP_Utils::evalOpParm(result, thissop, "noisemaskbiastexture", cookparms.getCookTime(), 0);
2612  return result;
2613  }
2614  bool getNoisemaskcenterone() const { return myNoisemaskcenterone; }
2615  void setNoisemaskcenterone(bool val) { myNoisemaskcenterone = val; }
2616  bool opNoisemaskcenterone(const SOP_NodeVerb::CookParms &cookparms) const
2617  {
2618  SOP_Node *thissop = cookparms.getNode();
2619  if (!thissop) return getNoisemaskcenterone();
2620  bool result;
2621  OP_Utils::evalOpParm(result, thissop, "noisemaskcenterone", cookparms.getCookTime(), 0);
2622  return result;
2623  }
2624  bool getNoisemaskfractal() const { return myNoisemaskfractal; }
2625  void setNoisemaskfractal(bool val) { myNoisemaskfractal = val; }
2626  bool opNoisemaskfractal(const SOP_NodeVerb::CookParms &cookparms) const
2627  {
2628  SOP_Node *thissop = cookparms.getNode();
2629  if (!thissop) return getNoisemaskfractal();
2630  bool result;
2631  OP_Utils::evalOpParm(result, thissop, "noisemaskfractal", cookparms.getCookTime(), 0);
2632  return result;
2633  }
2634  fpreal64 getNoisemaskoct() const { return myNoisemaskoct; }
2635  void setNoisemaskoct(fpreal64 val) { myNoisemaskoct = val; }
2637  {
2638  SOP_Node *thissop = cookparms.getNode();
2639  if (!thissop) return getNoisemaskoct();
2640  fpreal64 result;
2641  OP_Utils::evalOpParm(result, thissop, "noisemaskoct", cookparms.getCookTime(), 0);
2642  return result;
2643  }
2644  fpreal64 getNoisemasklac() const { return myNoisemasklac; }
2645  void setNoisemasklac(fpreal64 val) { myNoisemasklac = val; }
2647  {
2648  SOP_Node *thissop = cookparms.getNode();
2649  if (!thissop) return getNoisemasklac();
2650  fpreal64 result;
2651  OP_Utils::evalOpParm(result, thissop, "noisemasklac", cookparms.getCookTime(), 0);
2652  return result;
2653  }
2654  fpreal64 getNoisemaskrough() const { return myNoisemaskrough; }
2655  void setNoisemaskrough(fpreal64 val) { myNoisemaskrough = val; }
2657  {
2658  SOP_Node *thissop = cookparms.getNode();
2659  if (!thissop) return getNoisemaskrough();
2660  fpreal64 result;
2661  OP_Utils::evalOpParm(result, thissop, "noisemaskrough", cookparms.getCookTime(), 0);
2662  return result;
2663  }
2664  Noisemaskroughoverride getNoisemaskroughoverride() const { return Noisemaskroughoverride(myNoisemaskroughoverride); }
2665  void setNoisemaskroughoverride(Noisemaskroughoverride val) { myNoisemaskroughoverride = int64(val); }
2667  {
2668  SOP_Node *thissop = cookparms.getNode();
2669  if (!thissop) return getNoisemaskroughoverride();
2670  int64 result;
2671  OP_Utils::evalOpParm(result, thissop, "noisemaskroughoverride", cookparms.getCookTime(), 0);
2672  return Noisemaskroughoverride(result);
2673  }
2674  const UT_StringHolder & getNoisemaskroughcurveattrib() const { return myNoisemaskroughcurveattrib; }
2675  void setNoisemaskroughcurveattrib(const UT_StringHolder & val) { myNoisemaskroughcurveattrib = val; }
2677  {
2678  SOP_Node *thissop = cookparms.getNode();
2679  if (!thissop) return getNoisemaskroughcurveattrib();
2681  OP_Utils::evalOpParm(result, thissop, "noisemaskroughcurveattrib", cookparms.getCookTime(), 0);
2682  return result;
2683  }
2684  const UT_StringHolder & getNoisemaskroughattrib() const { return myNoisemaskroughattrib; }
2685  void setNoisemaskroughattrib(const UT_StringHolder & val) { myNoisemaskroughattrib = val; }
2687  {
2688  SOP_Node *thissop = cookparms.getNode();
2689  if (!thissop) return getNoisemaskroughattrib();
2691  OP_Utils::evalOpParm(result, thissop, "noisemaskroughattrib", cookparms.getCookTime(), 0);
2692  return result;
2693  }
2694  const UT_StringHolder & getNoisemaskroughtexture() const { return myNoisemaskroughtexture; }
2695  void setNoisemaskroughtexture(const UT_StringHolder & val) { myNoisemaskroughtexture = val; }
2697  {
2698  SOP_Node *thissop = cookparms.getNode();
2699  if (!thissop) return getNoisemaskroughtexture();
2701  OP_Utils::evalOpParm(result, thissop, "noisemaskroughtexture", cookparms.getCookTime(), 0);
2702  return result;
2703  }
2704  bool getUselengthmask() const { return myUselengthmask; }
2705  void setUselengthmask(bool val) { myUselengthmask = val; }
2706  bool opUselengthmask(const SOP_NodeVerb::CookParms &cookparms) const
2707  {
2708  SOP_Node *thissop = cookparms.getNode();
2709  if (!thissop) return getUselengthmask();
2710  bool result;
2711  OP_Utils::evalOpParm(result, thissop, "uselengthmask", cookparms.getCookTime(), 0);
2712  return result;
2713  }
2714  Lengthmode getLengthmode() const { return Lengthmode(myLengthmode); }
2715  void setLengthmode(Lengthmode val) { myLengthmode = int64(val); }
2717  {
2718  SOP_Node *thissop = cookparms.getNode();
2719  if (!thissop) return getLengthmode();
2720  int64 result;
2721  OP_Utils::evalOpParm(result, thissop, "lengthmode", cookparms.getCookTime(), 0);
2722  return Lengthmode(result);
2723  }
2724  fpreal64 getLengthref() const { return myLengthref; }
2725  void setLengthref(fpreal64 val) { myLengthref = val; }
2727  {
2728  SOP_Node *thissop = cookparms.getNode();
2729  if (!thissop) return getLengthref();
2730  fpreal64 result;
2731  OP_Utils::evalOpParm(result, thissop, "lengthref", cookparms.getCookTime(), 0);
2732  return result;
2733  }
2734  Lengthrefoverride getLengthrefoverride() const { return Lengthrefoverride(myLengthrefoverride); }
2735  void setLengthrefoverride(Lengthrefoverride val) { myLengthrefoverride = int64(val); }
2737  {
2738  SOP_Node *thissop = cookparms.getNode();
2739  if (!thissop) return getLengthrefoverride();
2740  int64 result;
2741  OP_Utils::evalOpParm(result, thissop, "lengthrefoverride", cookparms.getCookTime(), 0);
2742  return Lengthrefoverride(result);
2743  }
2744  const UT_StringHolder & getLengthrefcurveattrib() const { return myLengthrefcurveattrib; }
2745  void setLengthrefcurveattrib(const UT_StringHolder & val) { myLengthrefcurveattrib = val; }
2747  {
2748  SOP_Node *thissop = cookparms.getNode();
2749  if (!thissop) return getLengthrefcurveattrib();
2751  OP_Utils::evalOpParm(result, thissop, "lengthrefcurveattrib", cookparms.getCookTime(), 0);
2752  return result;
2753  }
2754  const UT_StringHolder & getLengthrefattrib() const { return myLengthrefattrib; }
2755  void setLengthrefattrib(const UT_StringHolder & val) { myLengthrefattrib = val; }
2757  {
2758  SOP_Node *thissop = cookparms.getNode();
2759  if (!thissop) return getLengthrefattrib();
2761  OP_Utils::evalOpParm(result, thissop, "lengthrefattrib", cookparms.getCookTime(), 0);
2762  return result;
2763  }
2764  const UT_StringHolder & getLengthreftexture() const { return myLengthreftexture; }
2765  void setLengthreftexture(const UT_StringHolder & val) { myLengthreftexture = val; }
2767  {
2768  SOP_Node *thissop = cookparms.getNode();
2769  if (!thissop) return getLengthreftexture();
2771  OP_Utils::evalOpParm(result, thissop, "lengthreftexture", cookparms.getCookTime(), 0);
2772  return result;
2773  }
2774  fpreal64 getLengthfalloffrange() const { return myLengthfalloffrange; }
2775  void setLengthfalloffrange(fpreal64 val) { myLengthfalloffrange = val; }
2777  {
2778  SOP_Node *thissop = cookparms.getNode();
2779  if (!thissop) return getLengthfalloffrange();
2780  fpreal64 result;
2781  OP_Utils::evalOpParm(result, thissop, "lengthfalloffrange", cookparms.getCookTime(), 0);
2782  return result;
2783  }
2785  void setLengthfalloffrangeoverride(Lengthfalloffrangeoverride val) { myLengthfalloffrangeoverride = int64(val); }
2787  {
2788  SOP_Node *thissop = cookparms.getNode();
2789  if (!thissop) return getLengthfalloffrangeoverride();
2790  int64 result;
2791  OP_Utils::evalOpParm(result, thissop, "lengthfalloffrangeoverride", cookparms.getCookTime(), 0);
2792  return Lengthfalloffrangeoverride(result);
2793  }
2794  const UT_StringHolder & getLengthfalloffrangecurveattrib() const { return myLengthfalloffrangecurveattrib; }
2795  void setLengthfalloffrangecurveattrib(const UT_StringHolder & val) { myLengthfalloffrangecurveattrib = val; }
2797  {
2798  SOP_Node *thissop = cookparms.getNode();
2799  if (!thissop) return getLengthfalloffrangecurveattrib();
2801  OP_Utils::evalOpParm(result, thissop, "lengthfalloffrangecurveattrib", cookparms.getCookTime(), 0);
2802  return result;
2803  }
2804  const UT_StringHolder & getLengthfalloffrangeattrib() const { return myLengthfalloffrangeattrib; }
2805  void setLengthfalloffrangeattrib(const UT_StringHolder & val) { myLengthfalloffrangeattrib = val; }
2807  {
2808  SOP_Node *thissop = cookparms.getNode();
2809  if (!thissop) return getLengthfalloffrangeattrib();
2811  OP_Utils::evalOpParm(result, thissop, "lengthfalloffrangeattrib", cookparms.getCookTime(), 0);
2812  return result;
2813  }
2814  const UT_StringHolder & getLengthfalloffrangetexture() const { return myLengthfalloffrangetexture; }
2815  void setLengthfalloffrangetexture(const UT_StringHolder & val) { myLengthfalloffrangetexture = val; }
2817  {
2818  SOP_Node *thissop = cookparms.getNode();
2819  if (!thissop) return getLengthfalloffrangetexture();
2821  OP_Utils::evalOpParm(result, thissop, "lengthfalloffrangetexture", cookparms.getCookTime(), 0);
2822  return result;
2823  }
2824  fpreal64 getLengthfalloffdecay() const { return myLengthfalloffdecay; }
2825  void setLengthfalloffdecay(fpreal64 val) { myLengthfalloffdecay = val; }
2827  {
2828  SOP_Node *thissop = cookparms.getNode();
2829  if (!thissop) return getLengthfalloffdecay();
2830  fpreal64 result;
2831  OP_Utils::evalOpParm(result, thissop, "lengthfalloffdecay", cookparms.getCookTime(), 0);
2832  return result;
2833  }
2835  void setLengthfalloffdecayoverride(Lengthfalloffdecayoverride val) { myLengthfalloffdecayoverride = int64(val); }
2837  {
2838  SOP_Node *thissop = cookparms.getNode();
2839  if (!thissop) return getLengthfalloffdecayoverride();
2840  int64 result;
2841  OP_Utils::evalOpParm(result, thissop, "lengthfalloffdecayoverride", cookparms.getCookTime(), 0);
2842  return Lengthfalloffdecayoverride(result);
2843  }
2844  const UT_StringHolder & getLengthfalloffdecaycurveattrib() const { return myLengthfalloffdecaycurveattrib; }
2845  void setLengthfalloffdecaycurveattrib(const UT_StringHolder & val) { myLengthfalloffdecaycurveattrib = val; }
2847  {
2848  SOP_Node *thissop = cookparms.getNode();
2849  if (!thissop) return getLengthfalloffdecaycurveattrib();
2851  OP_Utils::evalOpParm(result, thissop, "lengthfalloffdecaycurveattrib", cookparms.getCookTime(), 0);
2852  return result;
2853  }
2854  const UT_StringHolder & getLengthfalloffdecayattrib() const { return myLengthfalloffdecayattrib; }
2855  void setLengthfalloffdecayattrib(const UT_StringHolder & val) { myLengthfalloffdecayattrib = val; }
2857  {
2858  SOP_Node *thissop = cookparms.getNode();
2859  if (!thissop) return getLengthfalloffdecayattrib();
2861  OP_Utils::evalOpParm(result, thissop, "lengthfalloffdecayattrib", cookparms.getCookTime(), 0);
2862  return result;
2863  }
2864  const UT_StringHolder & getLengthfalloffdecaytexture() const { return myLengthfalloffdecaytexture; }
2865  void setLengthfalloffdecaytexture(const UT_StringHolder & val) { myLengthfalloffdecaytexture = val; }
2867  {
2868  SOP_Node *thissop = cookparms.getNode();
2869  if (!thissop) return getLengthfalloffdecaytexture();
2871  OP_Utils::evalOpParm(result, thissop, "lengthfalloffdecaytexture", cookparms.getCookTime(), 0);
2872  return result;
2873  }
2874  fpreal64 getLengthrangemin() const { return myLengthrangemin; }
2875  void setLengthrangemin(fpreal64 val) { myLengthrangemin = val; }
2877  {
2878  SOP_Node *thissop = cookparms.getNode();
2879  if (!thissop) return getLengthrangemin();
2880  fpreal64 result;
2881  OP_Utils::evalOpParm(result, thissop, "lengthrangemin", cookparms.getCookTime(), 0);
2882  return result;
2883  }
2884  fpreal64 getLengthrangemax() const { return myLengthrangemax; }
2885  void setLengthrangemax(fpreal64 val) { myLengthrangemax = val; }
2887  {
2888  SOP_Node *thissop = cookparms.getNode();
2889  if (!thissop) return getLengthrangemax();
2890  fpreal64 result;
2891  OP_Utils::evalOpParm(result, thissop, "lengthrangemax", cookparms.getCookTime(), 0);
2892  return result;
2893  }
2894  Lengthpresets getLengthpresets() const { return Lengthpresets(myLengthpresets); }
2895  void setLengthpresets(Lengthpresets val) { myLengthpresets = int64(val); }
2897  {
2898  SOP_Node *thissop = cookparms.getNode();
2899  if (!thissop) return getLengthpresets();
2900  int64 result;
2901  OP_Utils::evalOpParm(result, thissop, "lengthpresets", cookparms.getCookTime(), 0);
2902  return Lengthpresets(result);
2903  }
2904  UT_SharedPtr<UT_Ramp> getLengthramp() const { return myLengthramp; }
2905  void setLengthramp(UT_SharedPtr<UT_Ramp> val) { myLengthramp = val; }
2907  {
2908  SOP_Node *thissop = cookparms.getNode();
2909  if (!thissop) return getLengthramp();
2911  OP_Utils::evalOpParm(result, thissop, "lengthramp", cookparms.getCookTime(), 0);
2912  return result;
2913  }
2914  bool getUseskincurvmask() const { return myUseskincurvmask; }
2915  void setUseskincurvmask(bool val) { myUseskincurvmask = val; }
2916  bool opUseskincurvmask(const SOP_NodeVerb::CookParms &cookparms) const
2917  {
2918  SOP_Node *thissop = cookparms.getNode();
2919  if (!thissop) return getUseskincurvmask();
2920  bool result;
2921  OP_Utils::evalOpParm(result, thissop, "useskincurvmask", cookparms.getCookTime(), 0);
2922  return result;
2923  }
2924  fpreal64 getSkincurvconcavemax() const { return mySkincurvconcavemax; }
2925  void setSkincurvconcavemax(fpreal64 val) { mySkincurvconcavemax = val; }
2927  {
2928  SOP_Node *thissop = cookparms.getNode();
2929  if (!thissop) return getSkincurvconcavemax();
2930  fpreal64 result;
2931  OP_Utils::evalOpParm(result, thissop, "skincurvconcavemax", cookparms.getCookTime(), 0);
2932  return result;
2933  }
2934  fpreal64 getSkincurvconvexmax() const { return mySkincurvconvexmax; }
2935  void setSkincurvconvexmax(fpreal64 val) { mySkincurvconvexmax = val; }
2937  {
2938  SOP_Node *thissop = cookparms.getNode();
2939  if (!thissop) return getSkincurvconvexmax();
2940  fpreal64 result;
2941  OP_Utils::evalOpParm(result, thissop, "skincurvconvexmax", cookparms.getCookTime(), 0);
2942  return result;
2943  }
2944  fpreal64 getSkincurvesmoothstrength() const { return mySkincurvesmoothstrength; }
2945  void setSkincurvesmoothstrength(fpreal64 val) { mySkincurvesmoothstrength = val; }
2947  {
2948  SOP_Node *thissop = cookparms.getNode();
2949  if (!thissop) return getSkincurvesmoothstrength();
2950  fpreal64 result;
2951  OP_Utils::evalOpParm(result, thissop, "skincurvesmoothstrength", cookparms.getCookTime(), 0);
2952  return result;
2953  }
2954  Skincurvpresets getSkincurvpresets() const { return Skincurvpresets(mySkincurvpresets); }
2955  void setSkincurvpresets(Skincurvpresets val) { mySkincurvpresets = int64(val); }
2957  {
2958  SOP_Node *thissop = cookparms.getNode();
2959  if (!thissop) return getSkincurvpresets();
2960  int64 result;
2961  OP_Utils::evalOpParm(result, thissop, "skincurvpresets", cookparms.getCookTime(), 0);
2962  return Skincurvpresets(result);
2963  }
2964  UT_SharedPtr<UT_Ramp> getSkincurvramp() const { return mySkincurvramp; }
2965  void setSkincurvramp(UT_SharedPtr<UT_Ramp> val) { mySkincurvramp = val; }
2967  {
2968  SOP_Node *thissop = cookparms.getNode();
2969  if (!thissop) return getSkincurvramp();
2971  OP_Utils::evalOpParm(result, thissop, "skincurvramp", cookparms.getCookTime(), 0);
2972  return result;
2973  }
2974  bool getUsegeomask() const { return myUsegeomask; }
2975  void setUsegeomask(bool val) { myUsegeomask = val; }
2976  bool opUsegeomask(const SOP_NodeVerb::CookParms &cookparms) const
2977  {
2978  SOP_Node *thissop = cookparms.getNode();
2979  if (!thissop) return getUsegeomask();
2980  bool result;
2981  OP_Utils::evalOpParm(result, thissop, "usegeomask", cookparms.getCookTime(), 0);
2982  return result;
2983  }
2984  fpreal64 getGeovoxelsize() const { return myGeovoxelsize; }
2985  void setGeovoxelsize(fpreal64 val) { myGeovoxelsize = val; }
2987  {
2988  SOP_Node *thissop = cookparms.getNode();
2989  if (!thissop) return getGeovoxelsize();
2990  fpreal64 result;
2991  OP_Utils::evalOpParm(result, thissop, "geovoxelsize", cookparms.getCookTime(), 0);
2992  return result;
2993  }
2994  fpreal64 getGeointrange() const { return myGeointrange; }
2995  void setGeointrange(fpreal64 val) { myGeointrange = val; }
2997  {
2998  SOP_Node *thissop = cookparms.getNode();
2999  if (!thissop) return getGeointrange();
3000  fpreal64 result;
3001  OP_Utils::evalOpParm(result, thissop, "geointrange", cookparms.getCookTime(), 0);
3002  return result;
3003  }
3004  fpreal64 getGeoextrange() const { return myGeoextrange; }
3005  void setGeoextrange(fpreal64 val) { myGeoextrange = val; }
3007  {
3008  SOP_Node *thissop = cookparms.getNode();
3009  if (!thissop) return getGeoextrange();
3010  fpreal64 result;
3011  OP_Utils::evalOpParm(result, thissop, "geoextrange", cookparms.getCookTime(), 0);
3012  return result;
3013  }
3014  Geodepthramppresets getGeodepthramppresets() const { return Geodepthramppresets(myGeodepthramppresets); }
3015  void setGeodepthramppresets(Geodepthramppresets val) { myGeodepthramppresets = int64(val); }
3017  {
3018  SOP_Node *thissop = cookparms.getNode();
3019  if (!thissop) return getGeodepthramppresets();
3020  int64 result;
3021  OP_Utils::evalOpParm(result, thissop, "geodepthramppresets", cookparms.getCookTime(), 0);
3022  return Geodepthramppresets(result);
3023  }
3024  UT_SharedPtr<UT_Ramp> getGeodepthramp() const { return myGeodepthramp; }
3025  void setGeodepthramp(UT_SharedPtr<UT_Ramp> val) { myGeodepthramp = val; }
3027  {
3028  SOP_Node *thissop = cookparms.getNode();
3029  if (!thissop) return getGeodepthramp();
3031  OP_Utils::evalOpParm(result, thissop, "geodepthramp", cookparms.getCookTime(), 0);
3032  return result;
3033  }
3034  bool getGeodoblur() const { return myGeodoblur; }
3035  void setGeodoblur(bool val) { myGeodoblur = val; }
3036  bool opGeodoblur(const SOP_NodeVerb::CookParms &cookparms) const
3037  {
3038  SOP_Node *thissop = cookparms.getNode();
3039  if (!thissop) return getGeodoblur();
3040  bool result;
3041  OP_Utils::evalOpParm(result, thissop, "geodoblur", cookparms.getCookTime(), 0);
3042  return result;
3043  }
3044  fpreal64 getGeoblurradius() const { return myGeoblurradius; }
3045  void setGeoblurradius(fpreal64 val) { myGeoblurradius = val; }
3047  {
3048  SOP_Node *thissop = cookparms.getNode();
3049  if (!thissop) return getGeoblurradius();
3050  fpreal64 result;
3051  OP_Utils::evalOpParm(result, thissop, "geoblurradius", cookparms.getCookTime(), 0);
3052  return result;
3053  }
3054  int64 getGeobluriters() const { return myGeobluriters; }
3055  void setGeobluriters(int64 val) { myGeobluriters = val; }
3057  {
3058  SOP_Node *thissop = cookparms.getNode();
3059  if (!thissop) return getGeobluriters();
3060  int64 result;
3061  OP_Utils::evalOpParm(result, thissop, "geobluriters", cookparms.getCookTime(), 0);
3062  return result;
3063  }
3064  bool getUserandommask() const { return myUserandommask; }
3065  void setUserandommask(bool val) { myUserandommask = val; }
3066  bool opUserandommask(const SOP_NodeVerb::CookParms &cookparms) const
3067  {
3068  SOP_Node *thissop = cookparms.getNode();
3069  if (!thissop) return getUserandommask();
3070  bool result;
3071  OP_Utils::evalOpParm(result, thissop, "userandommask", cookparms.getCookTime(), 0);
3072  return result;
3073  }
3074  Randommaskcombine getRandommaskcombine() const { return Randommaskcombine(myRandommaskcombine); }
3075  void setRandommaskcombine(Randommaskcombine val) { myRandommaskcombine = int64(val); }
3077  {
3078  SOP_Node *thissop = cookparms.getNode();
3079  if (!thissop) return getRandommaskcombine();
3080  int64 result;
3081  OP_Utils::evalOpParm(result, thissop, "randommaskcombine", cookparms.getCookTime(), 0);
3082  return Randommaskcombine(result);
3083  }
3084  fpreal64 getRandommaskseed() const { return myRandommaskseed; }
3085  void setRandommaskseed(fpreal64 val) { myRandommaskseed = val; }
3087  {
3088  SOP_Node *thissop = cookparms.getNode();
3089  if (!thissop) return getRandommaskseed();
3090  fpreal64 result;
3091  OP_Utils::evalOpParm(result, thissop, "randommaskseed", cookparms.getCookTime(), 0);
3092  return result;
3093  }
3094  fpreal64 getRandommaskfrac() const { return myRandommaskfrac; }
3095  void setRandommaskfrac(fpreal64 val) { myRandommaskfrac = val; }
3097  {
3098  SOP_Node *thissop = cookparms.getNode();
3099  if (!thissop) return getRandommaskfrac();
3100  fpreal64 result;
3101  OP_Utils::evalOpParm(result, thissop, "randommaskfrac", cookparms.getCookTime(), 0);
3102  return result;
3103  }
3104  fpreal64 getRandommaskvar() const { return myRandommaskvar; }
3105  void setRandommaskvar(fpreal64 val) { myRandommaskvar = val; }
3107  {
3108  SOP_Node *thissop = cookparms.getNode();
3109  if (!thissop) return getRandommaskvar();
3110  fpreal64 result;
3111  OP_Utils::evalOpParm(result, thissop, "randommaskvar", cookparms.getCookTime(), 0);
3112  return result;
3113  }
3114  fpreal64 getRandommaskvargain() const { return myRandommaskvargain; }
3115  void setRandommaskvargain(fpreal64 val) { myRandommaskvargain = val; }
3117  {
3118  SOP_Node *thissop = cookparms.getNode();
3119  if (!thissop) return getRandommaskvargain();
3120  fpreal64 result;
3121  OP_Utils::evalOpParm(result, thissop, "randommaskvargain", cookparms.getCookTime(), 0);
3122  return result;
3123  }
3124  bool getUsecurvemask() const { return myUsecurvemask; }
3125  void setUsecurvemask(bool val) { myUsecurvemask = val; }
3126  bool opUsecurvemask(const SOP_NodeVerb::CookParms &cookparms) const
3127  {
3128  SOP_Node *thissop = cookparms.getNode();
3129  if (!thissop) return getUsecurvemask();
3130  bool result;
3131  OP_Utils::evalOpParm(result, thissop, "usecurvemask", cookparms.getCookTime(), 0);
3132  return result;
3133  }
3134  bool getCurvemaskabsrange() const { return myCurvemaskabsrange; }
3135  void setCurvemaskabsrange(bool val) { myCurvemaskabsrange = val; }
3136  bool opCurvemaskabsrange(const SOP_NodeVerb::CookParms &cookparms) const
3137  {
3138  SOP_Node *thissop = cookparms.getNode();
3139  if (!thissop) return getCurvemaskabsrange();
3140  bool result;
3141  OP_Utils::evalOpParm(result, thissop, "curvemaskabsrange", cookparms.getCookTime(), 0);
3142  return result;
3143  }
3144  fpreal64 getCurvemaskrangemin() const { return myCurvemaskrangemin; }
3145  void setCurvemaskrangemin(fpreal64 val) { myCurvemaskrangemin = val; }
3147  {
3148  SOP_Node *thissop = cookparms.getNode();
3149  if (!thissop) return getCurvemaskrangemin();
3150  fpreal64 result;
3151  OP_Utils::evalOpParm(result, thissop, "curvemaskrangemin", cookparms.getCookTime(), 0);
3152  return result;
3153  }
3154  fpreal64 getCurvemaskrangemax() const { return myCurvemaskrangemax; }
3155  void setCurvemaskrangemax(fpreal64 val) { myCurvemaskrangemax = val; }
3157  {
3158  SOP_Node *thissop = cookparms.getNode();
3159  if (!thissop) return getCurvemaskrangemax();
3160  fpreal64 result;
3161  OP_Utils::evalOpParm(result, thissop, "curvemaskrangemax", cookparms.getCookTime(), 0);
3162  return result;
3163  }
3164  fpreal64 getCurvemaskeffectpos() const { return myCurvemaskeffectpos; }
3165  void setCurvemaskeffectpos(fpreal64 val) { myCurvemaskeffectpos = val; }
3167  {
3168  SOP_Node *thissop = cookparms.getNode();
3169  if (!thissop) return getCurvemaskeffectpos();
3170  fpreal64 result;
3171  OP_Utils::evalOpParm(result, thissop, "curvemaskeffectpos", cookparms.getCookTime(), 0);
3172  return result;
3173  }
3174  fpreal64 getCurvemaskfalloff() const { return myCurvemaskfalloff; }
3175  void setCurvemaskfalloff(fpreal64 val) { myCurvemaskfalloff = val; }
3177  {
3178  SOP_Node *thissop = cookparms.getNode();
3179  if (!thissop) return getCurvemaskfalloff();
3180  fpreal64 result;
3181  OP_Utils::evalOpParm(result, thissop, "curvemaskfalloff", cookparms.getCookTime(), 0);
3182  return result;
3183  }
3184  fpreal64 getCurvemaskwidth() const { return myCurvemaskwidth; }
3185  void setCurvemaskwidth(fpreal64 val) { myCurvemaskwidth = val; }
3187  {
3188  SOP_Node *thissop = cookparms.getNode();
3189  if (!thissop) return getCurvemaskwidth();
3190  fpreal64 result;
3191  OP_Utils::evalOpParm(result, thissop, "curvemaskwidth", cookparms.getCookTime(), 0);
3192  return result;
3193  }
3194  UT_SharedPtr<UT_Ramp> getCurvemaskramp() const { return myCurvemaskramp; }
3195  void setCurvemaskramp(UT_SharedPtr<UT_Ramp> val) { myCurvemaskramp = val; }
3197  {
3198  SOP_Node *thissop = cookparms.getNode();
3199  if (!thissop) return getCurvemaskramp();
3201  OP_Utils::evalOpParm(result, thissop, "curvemaskramp", cookparms.getCookTime(), 0);
3202  return result;
3203  }
3204  bool getUseskinlookupattribs() const { return myUseskinlookupattribs; }
3205  void setUseskinlookupattribs(bool val) { myUseskinlookupattribs = val; }
3207  {
3208  SOP_Node *thissop = cookparms.getNode();
3209  if (!thissop) return getUseskinlookupattribs();
3210  bool result;
3211  OP_Utils::evalOpParm(result, thissop, "useskinlookupattribs", cookparms.getCookTime(), 0);
3212  return result;
3213  }
3214 
3215 private:
3216  UT_StringHolder myUvattrib;
3217  int64 myGrouptype;
3218  UT_StringHolder myGroup;
3219  bool myZeroungrouped;
3220  fpreal64 myInputmask;
3221  int64 myInputmaskoverride;
3222  UT_StringHolder myInputmaskcurveattrib;
3223  UT_StringHolder myInputmaskattrib;
3224  UT_StringHolder myInputmasktexture;
3225  bool myVismasks;
3226  int64 myOutattribtype;
3227  UT_StringHolder myOutattrib;
3228  bool myCreateprimgroup;
3229  UT_StringHolder myOutprimgroup;
3230  bool myCreateintattrib;
3231  UT_StringHolder myIntattrib;
3232  int64 myIntattribvalue;
3233  fpreal64 myIntattribthresh;
3234  bool myUsenoisemask;
3235  fpreal64 myNoisemaskamount;
3236  int64 myNoisemaskamountoverride;
3237  UT_StringHolder myNoisemaskamountcurveattrib;
3238  UT_StringHolder myNoisemaskamountattrib;
3239  UT_StringHolder myNoisemaskamounttexture;
3240  fpreal64 myNoisemaskfreq;
3241  fpreal64 myNoisemaskgain;
3242  int64 myNoisemaskgainoverride;
3243  UT_StringHolder myNoisemaskgaincurveattrib;
3244  UT_StringHolder myNoisemaskgainattrib;
3245  UT_StringHolder myNoisemaskgaintexture;
3246  fpreal64 myNoisemaskbias;
3247  int64 myNoisemaskbiasoverride;
3248  UT_StringHolder myNoisemaskbiascurveattrib;
3249  UT_StringHolder myNoisemaskbiasattrib;
3250  UT_StringHolder myNoisemaskbiastexture;
3251  bool myNoisemaskcenterone;
3252  bool myNoisemaskfractal;
3253  fpreal64 myNoisemaskoct;
3254  fpreal64 myNoisemasklac;
3255  fpreal64 myNoisemaskrough;
3256  int64 myNoisemaskroughoverride;
3257  UT_StringHolder myNoisemaskroughcurveattrib;
3258  UT_StringHolder myNoisemaskroughattrib;
3259  UT_StringHolder myNoisemaskroughtexture;
3260  bool myUselengthmask;
3261  int64 myLengthmode;
3262  fpreal64 myLengthref;
3263  int64 myLengthrefoverride;
3264  UT_StringHolder myLengthrefcurveattrib;
3265  UT_StringHolder myLengthrefattrib;
3266  UT_StringHolder myLengthreftexture;
3267  fpreal64 myLengthfalloffrange;
3268  int64 myLengthfalloffrangeoverride;
3269  UT_StringHolder myLengthfalloffrangecurveattrib;
3270  UT_StringHolder myLengthfalloffrangeattrib;
3271  UT_StringHolder myLengthfalloffrangetexture;
3272  fpreal64 myLengthfalloffdecay;
3273  int64 myLengthfalloffdecayoverride;
3274  UT_StringHolder myLengthfalloffdecaycurveattrib;
3275  UT_StringHolder myLengthfalloffdecayattrib;
3276  UT_StringHolder myLengthfalloffdecaytexture;
3277  fpreal64 myLengthrangemin;
3278  fpreal64 myLengthrangemax;
3279  int64 myLengthpresets;
3280  UT_SharedPtr<UT_Ramp> myLengthramp;
3281  bool myUseskincurvmask;
3282  fpreal64 mySkincurvconcavemax;
3283  fpreal64 mySkincurvconvexmax;
3284  fpreal64 mySkincurvesmoothstrength;
3285  int64 mySkincurvpresets;
3286  UT_SharedPtr<UT_Ramp> mySkincurvramp;
3287  bool myUsegeomask;
3288  fpreal64 myGeovoxelsize;
3289  fpreal64 myGeointrange;
3290  fpreal64 myGeoextrange;
3291  int64 myGeodepthramppresets;
3292  UT_SharedPtr<UT_Ramp> myGeodepthramp;
3293  bool myGeodoblur;
3294  fpreal64 myGeoblurradius;
3295  int64 myGeobluriters;
3296  bool myUserandommask;
3297  int64 myRandommaskcombine;
3298  fpreal64 myRandommaskseed;
3299  fpreal64 myRandommaskfrac;
3300  fpreal64 myRandommaskvar;
3301  fpreal64 myRandommaskvargain;
3302  bool myUsecurvemask;
3303  bool myCurvemaskabsrange;
3304  fpreal64 myCurvemaskrangemin;
3305  fpreal64 myCurvemaskrangemax;
3306  fpreal64 myCurvemaskeffectpos;
3307  fpreal64 myCurvemaskfalloff;
3308  fpreal64 myCurvemaskwidth;
3309  UT_SharedPtr<UT_Ramp> myCurvemaskramp;
3310  bool myUseskinlookupattribs;
3311 
3312 };
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
UT_StringHolder opIntattrib(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
Inputmaskoverride opInputmaskoverride(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
void setRandommaskseed(fpreal64 val)
type
Definition: core.h:556
void setNoisemaskoct(fpreal64 val)
Randommaskcombine getRandommaskcombine() const
bool load(UT_IStream &is)
Grouptype opGrouptype(const SOP_NodeVerb::CookParms &cookparms) const
Noisemaskamountoverride getNoisemaskamountoverride() const
void setNoisemaskbiastexture(const UT_StringHolder &val)
const UT_StringHolder & getOutprimgroup() const
Lengthfalloffdecayoverride getLengthfalloffdecayoverride() const
UT_StringHolder opLengthreftexture(const SOP_NodeVerb::CookParms &cookparms) const
void setNoisemaskgaincurveattrib(const UT_StringHolder &val)
UT_StringHolder opNoisemaskamountcurveattrib(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
static void loadData(UT_IStream &is, UT_StringHolder &v)
void setLengthrefcurveattrib(const UT_StringHolder &val)
int64 opIntattribvalue(const SOP_NodeVerb::CookParms &cookparms) const
void setNoisemaskbiasoverride(Noisemaskbiasoverride val)
fpreal64 opNoisemaskrough(const SOP_NodeVerb::CookParms &cookparms) const
void setLengthrangemin(fpreal64 val)
UT_StringHolder opOutprimgroup(const SOP_NodeVerb::CookParms &cookparms) const
void setInputmaskcurveattrib(const UT_StringHolder &val)
bool opCreateintattrib(const SOP_NodeVerb::CookParms &cookparms) const
int int32
Definition: SYS_Types.h:39
void setGeointrange(fpreal64 val)
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
void setVismasks(bool val)
static void saveData(std::ostream &os, PRM_DataItemHandle s)
Outattribtype getOutattribtype() const
void setLengthramp(UT_SharedPtr< UT_Ramp > val)
fpreal64 opRandommaskvar(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getLengthfalloffdecayattrib() const
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
UT_SharedPtr< UT_Ramp > opGeodepthramp(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opNoisemaskroughtexture(const SOP_NodeVerb::CookParms &cookparms) const
void setRandommaskvar(fpreal64 val)
static UT_SharedPtr< UT_Ramp > buildFromDefault(const char *def)
Returns a ramp constructed from the canonical default strings.
void setLengthmode(Lengthmode val)
const UT_StringHolder & getNoisemaskgainattrib() const
Noisemaskgainoverride opNoisemaskgainoverride(const SOP_NodeVerb::CookParms &cookparms) const
void setIntattribvalue(int64 val)
void setGeoblurradius(fpreal64 val)
void setNoisemaskgain(fpreal64 val)
Noisemaskroughoverride getNoisemaskroughoverride() const
bool getUselengthmask() const
void setLengthfalloffrangeoverride(Lengthfalloffrangeoverride val)
exint bread(int32 *buffer, exint asize=1)
GLboolean * data
Definition: glcorearb.h:131
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector4.h:493
void setUseskincurvmask(bool val)
void setLengthfalloffdecayoverride(Lengthfalloffdecayoverride val)
const GLdouble * v
Definition: glcorearb.h:837
fpreal64 getCurvemaskeffectpos() const
fpreal getTime() const
Definition: OP_Context.h:63
ParmType getNestParmType(TempIndex fieldnum) const override
UT_SharedPtr< UT_Ramp > getLengthramp() const
fpreal64 getCurvemaskwidth() const
GLsizei const GLfloat * value
Definition: glcorearb.h:824
UT_StringHolder opLengthfalloffdecaytexture(const SOP_NodeVerb::CookParms &cookparms) const
Lengthrefoverride getLengthrefoverride() const
void save(std::ostream &os) const
void setNoisemaskamountoverride(Noisemaskamountoverride val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
void setInputmask(fpreal64 val)
static void loadData(UT_IStream &is, UT_Matrix4D &v)
void setCurvemaskramp(UT_SharedPtr< UT_Ramp > val)
bool getNoisemaskfractal() const
static void loadData(UT_IStream &is, UT_Matrix3D &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
Lengthfalloffdecayoverride opLengthfalloffdecayoverride(const SOP_NodeVerb::CookParms &cookparms) const
const OP_Context & context() const
Definition: OP_NodeParms.h:97
fpreal64 getSkincurvconvexmax() const
Noisemaskbiasoverride opNoisemaskbiasoverride(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector3.h:667
int64 exint
Definition: SYS_Types.h:125
UT_StringHolder opInputmaskattrib(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getGeovoxelsize() const
SYS_FORCE_INLINE const char * buffer() const
GLdouble s
Definition: glad.h:3009
UT_StringHolder opLengthrefcurveattrib(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opNoisemaskgaincurveattrib(const SOP_NodeVerb::CookParms &cookparms) const
bool getUseskinlookupattribs() const
void setSkincurvpresets(Skincurvpresets val)
fpreal64 getRandommaskvar() const
Noisemaskgainoverride getNoisemaskgainoverride() const
fpreal64 getNoisemaskfreq() const
Outattribtype opOutattribtype(const SOP_NodeVerb::CookParms &cookparms) const
An output stream object that owns its own string buffer storage.
const UT_StringHolder & getNoisemaskgaincurveattrib() const
fpreal64 getCurvemaskfalloff() const
void setOutattribtype(Outattribtype val)
fpreal64 opCurvemaskfalloff(const SOP_NodeVerb::CookParms &cookparms) const
Grouptype getGrouptype() const
fpreal64 opNoisemasklac(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opLengthfalloffrange(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector2I &v)
UT_SharedPtr< UT_Ramp > getSkincurvramp() const
**But if you need a result
Definition: thread.h:622
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
void setSkincurvramp(UT_SharedPtr< UT_Ramp > val)
void setNoisemaskgaintexture(const UT_StringHolder &val)
UT_StringHolder opOutattrib(const SOP_NodeVerb::CookParms &cookparms) const
bool operator!=(const SOP_GuideMaskParms &src) const
void setLengthrefattrib(const UT_StringHolder &val)
void setLengthfalloffrangeattrib(const UT_StringHolder &val)
void setGeobluriters(int64 val)
fpreal64 opNoisemaskamount(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector3D &v)
exint getNestNumParms(TempIndex idx) const override
bool getCreateintattrib() const
void setUsecurvemask(bool val)
static void saveData(std::ostream &os, fpreal64 v)
fpreal64 opNoisemaskgain(const SOP_NodeVerb::CookParms &cookparms) const
const char * getNestParmName(TempIndex fieldnum) const override
exint nodeIdx() const
Definition: OP_NodeParms.h:95
static void saveData(std::ostream &os, UT_StringHolder s)
fpreal64 opLengthrangemax(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 & getInputmaskcurveattrib() const
Geodepthramppresets opGeodepthramppresets(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE UT_StringHolder getToken(Grouptype enum_value)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
bool opUsecurvemask(const SOP_NodeVerb::CookParms &cookparms) const
void setLengthpresets(Lengthpresets val)
void setNoisemaskfractal(bool val)
Inputmaskoverride getInputmaskoverride() const
Skincurvpresets getSkincurvpresets() const
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
UT_StringHolder opNoisemaskamountattrib(const SOP_NodeVerb::CookParms &cookparms) const
void setZeroungrouped(bool val)
void setCreateprimgroup(bool val)
UT_StringHolder opInputmasktexture(const SOP_NodeVerb::CookParms &cookparms) const
bool opGeodoblur(const SOP_NodeVerb::CookParms &cookparms) const
void setGeodoblur(bool val)
const UT_StringHolder & getLengthfalloffdecaytexture() const
fpreal64 getNoisemaskbias() const
void setNoisemaskfreq(fpreal64 val)
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
double fpreal64
Definition: SYS_Types.h:201
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: APEX_Include.h:55
void setNoisemaskgainoverride(Noisemaskgainoverride val)
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector2.h:423
fpreal64 getCurvemaskrangemin() const
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
Lengthpresets opLengthpresets(const SOP_NodeVerb::CookParms &cookparms) const
void setSkincurvconcavemax(fpreal64 val)
UT_StringHolder opLengthfalloffrangecurveattrib(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opNoisemaskgainattrib(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opNoisemaskbias(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getNoisemaskbiasattrib() const
void setIntattrib(const UT_StringHolder &val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
void setGeodepthramp(UT_SharedPtr< UT_Ramp > val)
UT_StringHolder opLengthrefattrib(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opCurvemaskrangemin(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opSkincurvesmoothstrength(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opLengthfalloffdecaycurveattrib(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
UT_StringHolder opLengthfalloffrangeattrib(const SOP_NodeVerb::CookParms &cookparms) const
int64 opGeobluriters(const SOP_NodeVerb::CookParms &cookparms) const
void setCurvemaskwidth(fpreal64 val)
Lengthpresets getLengthpresets() const
static void loadData(UT_IStream &is, int64 &v)
void setLengthreftexture(const UT_StringHolder &val)
void setOutprimgroup(const UT_StringHolder &val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
bool opUsegeomask(const SOP_NodeVerb::CookParms &cookparms) const
exint length() const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void setRandommaskcombine(Randommaskcombine val)
void setIntattribthresh(fpreal64 val)
bool getUseskincurvmask() const
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:36
bool opVismasks(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector4.h:495
fpreal64 getLengthfalloffrange() const
void setCurvemaskabsrange(bool val)
fpreal64 getSkincurvesmoothstrength() const
void setUselengthmask(bool val)
fpreal64 opGeoblurradius(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
UT_SharedPtr< UT_Ramp > getGeodepthramp() const
Lengthmode opLengthmode(const SOP_NodeVerb::CookParms &cookparms) const
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
#define SYS_FORCE_INLINE
Definition: SYS_Inline.h:45
Noisemaskamountoverride opNoisemaskamountoverride(const SOP_NodeVerb::CookParms &cookparms) const
void setNoisemaskamount(fpreal64 val)
static void saveData(std::ostream &os, UT_Vector2D v)
bool getZeroungrouped() const
Noisemaskroughoverride opNoisemaskroughoverride(const SOP_NodeVerb::CookParms &cookparms) const
void setGeovoxelsize(fpreal64 val)
void setLengthref(fpreal64 val)
fpreal64 getRandommaskvargain() const
bool getUsecurvemask() const
void setGeodepthramppresets(Geodepthramppresets val)
void setInputmaskattrib(const UT_StringHolder &val)
fpreal64 getGeointrange() const
void setLengthfalloffdecay(fpreal64 val)
UT_StringHolder opNoisemaskroughcurveattrib(const SOP_NodeVerb::CookParms &cookparms) const
void setNoisemaskroughattrib(const UT_StringHolder &val)
void setNoisemasklac(fpreal64 val)
void setNoisemaskamounttexture(const UT_StringHolder &val)
UT_StringHolder opUvattrib(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Matrix2D v)
long long int64
Definition: SYS_Types.h:116
Lengthrefoverride opLengthrefoverride(const SOP_NodeVerb::CookParms &cookparms) const
bool opUsenoisemask(const SOP_NodeVerb::CookParms &cookparms) const
void setUseskinlookupattribs(bool val)
fpreal64 opLengthrangemin(const SOP_NodeVerb::CookParms &cookparms) const
bool opNoisemaskcenterone(const SOP_NodeVerb::CookParms &cookparms) const
Lengthmode getLengthmode() const
fpreal64 getGeoextrange() const
bool operator==(const SOP_GuideMaskParms &src) const
const UT_StringHolder & getLengthrefattrib() const
int64 getGeobluriters() const
bool opUserandommask(const SOP_NodeVerb::CookParms &cookparms) const
bool getCreateprimgroup() const
fpreal64 opRandommaskfrac(const SOP_NodeVerb::CookParms &cookparms) const
bool opUseskincurvmask(const SOP_NodeVerb::CookParms &cookparms) const
bool opUseskinlookupattribs(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getUvattrib() const
void setLengthfalloffrangecurveattrib(const UT_StringHolder &val)
const UT_StringHolder & getInputmasktexture() const
void setNoisemaskroughcurveattrib(const UT_StringHolder &val)
const UT_StringHolder & getInputmaskattrib() const
const UT_StringHolder & getLengthreftexture() const
void setNoisemaskroughoverride(Noisemaskroughoverride val)
void setNoisemaskbias(fpreal64 val)
void setRandommaskfrac(fpreal64 val)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
bool opCurvemaskabsrange(const SOP_NodeVerb::CookParms &cookparms) const
void setNoisemaskamountcurveattrib(const UT_StringHolder &val)
void setCurvemaskrangemin(fpreal64 val)
fpreal64 getSkincurvconcavemax() const
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
const UT_StringHolder & getOutattrib() const
void setInputmasktexture(const UT_StringHolder &val)
fpreal64 getInputmask() const
void setNoisemaskrough(fpreal64 val)
fpreal64 opInputmask(const SOP_NodeVerb::CookParms &cookparms) const
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:303
void setNoisemaskgainattrib(const UT_StringHolder &val)
UT_StringHolder opLengthfalloffrangetexture(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getNoisemaskbiascurveattrib() const
fpreal64 getLengthfalloffdecay() const
void setLengthfalloffrange(fpreal64 val)
fpreal64 opCurvemaskrangemax(const SOP_NodeVerb::CookParms &cookparms) const
void setLengthfalloffdecaytexture(const UT_StringHolder &val)
Randommaskcombine opRandommaskcombine(const SOP_NodeVerb::CookParms &cookparms) const
GT_API const UT_StringHolder version
void setUvattrib(const UT_StringHolder &val)
void setCreateintattrib(bool val)
void setGrouptype(Grouptype val)
bool opNoisemaskfractal(const SOP_NodeVerb::CookParms &cookparms) const
void setRandommaskvargain(fpreal64 val)
static void loadData(UT_IStream &is, UT_Vector2D &v)
fpreal64 getRandommaskseed() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
UT_StringHolder opNoisemaskbiasattrib(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Matrix4D v)
UT_StringHolder opNoisemaskamounttexture(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
fpreal64 opLengthref(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getLengthfalloffrangetexture() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
fpreal64 getCurvemaskrangemax() const
static void loadData(UT_IStream &is, fpreal64 &v)
void setLengthfalloffdecaycurveattrib(const UT_StringHolder &val)
const UT_StringHolder & getIntattrib() const
void setCurvemaskeffectpos(fpreal64 val)
UT_SharedPtr< UT_Ramp > getCurvemaskramp() const
void setLengthfalloffdecayattrib(const UT_StringHolder &val)
const UT_StringHolder & getLengthfalloffrangeattrib() const
fpreal64 getNoisemaskoct() const
void setLengthfalloffrangetexture(const UT_StringHolder &val)
fpreal64 getNoisemaskamount() const
UT_SharedPtr< UT_Ramp > opCurvemaskramp(const SOP_NodeVerb::CookParms &cookparms) const
void setCurvemaskrangemax(fpreal64 val)
fpreal64 getNoisemaskgain() const
fpreal64 fpreal
Definition: SYS_Types.h:278
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:99
void setCurvemaskfalloff(fpreal64 val)
bool opZeroungrouped(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opGeovoxelsize(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, bool &v)
void setUsegeomask(bool val)
LeafData & operator=(const LeafData &)=delete
const UT_StringHolder & getNoisemaskgaintexture() const
void setSkincurvesmoothstrength(fpreal64 val)
Utility class for containing a color ramp.
Definition: UT_Ramp.h:96
UT_SharedPtr< UT_Ramp > opLengthramp(const SOP_NodeVerb::CookParms &cookparms) const
bool isParmColorRamp(exint idx) const override
fpreal64 getIntattribthresh() const
void copyFrom(const OP_NodeParms *src) override
void setGroup(const UT_StringHolder &val)
const UT_StringHolder & getNoisemaskroughtexture() const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
void setUserandommask(bool val)
void setNoisemaskroughtexture(const UT_StringHolder &val)
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
static void saveData(std::ostream &os, UT_Vector3D v)
Lengthfalloffrangeoverride getLengthfalloffrangeoverride() const
Lengthfalloffrangeoverride opLengthfalloffrangeoverride(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
GLuint GLfloat * val
Definition: glcorearb.h:1608
virtual UT_StringHolder baseGetSignature() const
Definition: OP_NodeParms.h:294
void setGeoextrange(fpreal64 val)
void setLengthrefoverride(Lengthrefoverride val)
const UT_StringHolder & getLengthfalloffrangecurveattrib() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
#define SOP_API
Definition: SOP_API.h:10
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
fpreal64 opLengthfalloffdecay(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getNoisemaskbiastexture() const
fpreal64 getLengthrangemin() const
fpreal64 getGeoblurradius() const
fpreal64 opSkincurvconcavemax(const SOP_NodeVerb::CookParms &cookparms) const
Geodepthramppresets getGeodepthramppresets() const
bool getUserandommask() const
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:372
void setSkincurvconvexmax(fpreal64 val)
void setNoisemaskamountattrib(const UT_StringHolder &val)
void setOutattrib(const UT_StringHolder &val)
UT_StringHolder opNoisemaskbiastexture(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opNoisemaskgaintexture(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, bool v)
fpreal64 opGeoextrange(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opGeointrange(const SOP_NodeVerb::CookParms &cookparms) const
void loadFromOpSubclass(const LoadParms &loadparms) override
UT_StringHolder opNoisemaskroughattrib(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector4I &v)
const char * findChar(int c) const
Definition: UT_String.h:1401
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
int64 getIntattribvalue() const
fpreal64 opRandommaskvargain(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opIntattribthresh(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getLengthfalloffdecaycurveattrib() const
Noisemaskbiasoverride getNoisemaskbiasoverride() const
fpreal64 opSkincurvconvexmax(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getRandommaskfrac() const
bool opUselengthmask(const SOP_NodeVerb::CookParms &cookparms) const
GLboolean r
Definition: glcorearb.h:1222
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
fpreal64 opNoisemaskfreq(const SOP_NodeVerb::CookParms &cookparms) const
UT_SharedPtr< UT_Ramp > opSkincurvramp(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector4D &v)
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
fpreal64 opRandommaskseed(const SOP_NodeVerb::CookParms &cookparms) const
void setUsenoisemask(bool val)
fpreal64 getLengthrangemax() const
UT_StringHolder opInputmaskcurveattrib(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
const UT_StringHolder & getLengthrefcurveattrib() const
static void saveData(std::ostream &os, int64 v)
const UT_StringHolder & getGroup() const
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
bool getUsenoisemask() const
void setNoisemaskbiasattrib(const UT_StringHolder &val)
static void saveData(std::ostream &os, UT_Vector4D v)
Skincurvpresets opSkincurvpresets(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opNoisemaskbiascurveattrib(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Matrix3D v)
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector2.h:425
static void loadData(UT_IStream &is, UT_Vector3I &v)
fpreal64 getLengthref() const
SYS_FORCE_INLINE bool isstring() const
UT_StringHolder opLengthfalloffdecayattrib(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opNoisemaskoct(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getNoisemaskroughcurveattrib() const
bool getNoisemaskcenterone() const
const UT_StringHolder & getNoisemaskamountcurveattrib() const
const UT_StringHolder & getNoisemaskroughattrib() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
void setInputmaskoverride(Inputmaskoverride val)
bool opCreateprimgroup(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opCurvemaskwidth(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getNoisemaskamountattrib() const
const UT_StringHolder & getNoisemaskamounttexture() const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
void setLengthrangemax(fpreal64 val)
void setNoisemaskcenterone(bool val)
fpreal64 getNoisemasklac() const
bool getCurvemaskabsrange() const
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663
fpreal64 opCurvemaskeffectpos(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getNoisemaskrough() const
void setNoisemaskbiascurveattrib(const UT_StringHolder &val)