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 <SOP/SOP_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_SharedPtr<UT_Ramp>(0);
415  myUsegeomask = false;
416  myGeovoxelsize = 0.1;
417  myGeointrange = 1e-05;
418  myGeoextrange = 1e-05;
419  myGeodepthramppresets = 0;
420  myGeodepthramp = UT_SharedPtr<UT_Ramp>(0);
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_SharedPtr<UT_Ramp>(0);
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  return true;
552  }
553  bool operator!=(const SOP_GuideMaskParms &src) const
554  {
555  return !operator==(src);
556  }
572 
573 
574 
575  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
576  {
577  myUvattrib = "uv"_UTsh;
578  if (true)
579  graph->evalOpParm(myUvattrib, nodeidx, "uvattrib", time, 0);
580  myGrouptype = 0;
581  if (true)
582  graph->evalOpParm(myGrouptype, nodeidx, "grouptype", time, 0);
583  myGroup = ""_UTsh;
584  if (true)
585  graph->evalOpParm(myGroup, nodeidx, "group", time, 0);
586  myZeroungrouped = true;
587  if (true)
588  graph->evalOpParm(myZeroungrouped, nodeidx, "zeroungrouped", time, 0);
589  myInputmask = 1;
590  if (true)
591  graph->evalOpParm(myInputmask, nodeidx, "inputmask", time, 0);
592  myInputmaskoverride = 0;
593  if (true)
594  graph->evalOpParm(myInputmaskoverride, nodeidx, "inputmaskoverride", time, 0);
595  myInputmaskcurveattrib = "mask"_UTsh;
596  if (true && ( (true&&!(((int64(getInputmaskoverride())!=1)))) ) )
597  graph->evalOpParm(myInputmaskcurveattrib, nodeidx, "inputmaskcurveattrib", time, 0);
598  myInputmaskattrib = "mask"_UTsh;
599  if (true && ( (true&&!(((int64(getInputmaskoverride())!=2)))) ) )
600  graph->evalOpParm(myInputmaskattrib, nodeidx, "inputmaskattrib", time, 0);
601  myInputmasktexture = ""_UTsh;
602  if (true && ( (true&&!(((int64(getInputmaskoverride())!=3)))) ) )
603  graph->evalOpParm(myInputmasktexture, nodeidx, "inputmasktexture", time, 0);
604  myVismasks = true;
605  if (true)
606  graph->evalOpParm(myVismasks, nodeidx, "vismasks", time, 0);
607  myOutattribtype = 0;
608  if (true)
609  graph->evalOpParm(myOutattribtype, nodeidx, "outattribtype", time, 0);
610  myOutattrib = "mask"_UTsh;
611  if (true)
612  graph->evalOpParm(myOutattrib, nodeidx, "outattrib", time, 0);
613  myCreateprimgroup = false;
614  if (true)
615  graph->evalOpParm(myCreateprimgroup, nodeidx, "createprimgroup", time, 0);
616  myOutprimgroup = "affected"_UTsh;
617  if (true && ( (true&&!(((getCreateprimgroup()==0)))) ) )
618  graph->evalOpParm(myOutprimgroup, nodeidx, "outprimgroup", time, 0);
619  myCreateintattrib = false;
620  if (true && ( (true&&!(((int64(getOutattribtype())!=0)))) ) )
621  graph->evalOpParm(myCreateintattrib, nodeidx, "createintattrib", time, 0);
622  myIntattrib = "class"_UTsh;
623  if (true && ( (true&&!(((int64(getOutattribtype())!=0))||((getCreateintattrib()==0)))) ) )
624  graph->evalOpParm(myIntattrib, nodeidx, "intattrib", time, 0);
625  myIntattribvalue = 1;
626  if (true && ( (true&&!(((int64(getOutattribtype())!=0))||((getCreateintattrib()==0)))) ) )
627  graph->evalOpParm(myIntattribvalue, nodeidx, "intattribvalue", time, 0);
628  myIntattribthresh = 0.5;
629  if (true && ( (true&&!(((int64(getOutattribtype())!=0))||((getCreateintattrib()==0)))) ) )
630  graph->evalOpParm(myIntattribthresh, nodeidx, "intattribthresh", time, 0);
631  myUsenoisemask = false;
632  if (true)
633  graph->evalOpParm(myUsenoisemask, nodeidx, "usenoisemask", time, 0);
634  myNoisemaskamount = 1;
635  if (true && ( (true&&!(((getUsenoisemask()==0)))) ) )
636  graph->evalOpParm(myNoisemaskamount, nodeidx, "noisemaskamount", time, 0);
637  myNoisemaskamountoverride = 0;
638  if (true && ( (true&&!(((getUsenoisemask()==0)))) ) )
639  graph->evalOpParm(myNoisemaskamountoverride, nodeidx, "noisemaskamountoverride", time, 0);
640  myNoisemaskamountcurveattrib = "noiseamount"_UTsh;
641  if (true && ( (true&&!(((getUsenoisemask()==0))||((int64(getNoisemaskamountoverride())!=1)))) ) )
642  graph->evalOpParm(myNoisemaskamountcurveattrib, nodeidx, "noisemaskamountcurveattrib", time, 0);
643  myNoisemaskamountattrib = "noiseamount"_UTsh;
644  if (true && ( (true&&!(((getUsenoisemask()==0))||((int64(getNoisemaskamountoverride())!=2)))) ) )
645  graph->evalOpParm(myNoisemaskamountattrib, nodeidx, "noisemaskamountattrib", time, 0);
646  myNoisemaskamounttexture = ""_UTsh;
647  if (true && ( (true&&!(((getUsenoisemask()==0))||((int64(getNoisemaskamountoverride())!=3)))) ) )
648  graph->evalOpParm(myNoisemaskamounttexture, nodeidx, "noisemaskamounttexture", time, 0);
649  myNoisemaskfreq = 20;
650  if (true && ( (true&&!(((getUsenoisemask()==0)))) ) )
651  graph->evalOpParm(myNoisemaskfreq, nodeidx, "noisemaskfreq", time, 0);
652  myNoisemaskgain = 0.5;
653  if (true && ( (true&&!(((getUsenoisemask()==0)))) ) )
654  graph->evalOpParm(myNoisemaskgain, nodeidx, "noisemaskgain", time, 0);
655  myNoisemaskgainoverride = 0;
656  if (true && ( (true&&!(((getUsenoisemask()==0)))) ) )
657  graph->evalOpParm(myNoisemaskgainoverride, nodeidx, "noisemaskgainoverride", time, 0);
658  myNoisemaskgaincurveattrib = "noisegain"_UTsh;
659  if (true && ( (true&&!(((getUsenoisemask()==0))||((int64(getNoisemaskgainoverride())!=1)))) ) )
660  graph->evalOpParm(myNoisemaskgaincurveattrib, nodeidx, "noisemaskgaincurveattrib", time, 0);
661  myNoisemaskgainattrib = "noisegain"_UTsh;
662  if (true && ( (true&&!(((getUsenoisemask()==0))||((int64(getNoisemaskgainoverride())!=2)))) ) )
663  graph->evalOpParm(myNoisemaskgainattrib, nodeidx, "noisemaskgainattrib", time, 0);
664  myNoisemaskgaintexture = ""_UTsh;
665  if (true && ( (true&&!(((getUsenoisemask()==0))||((int64(getNoisemaskgainoverride())!=3)))) ) )
666  graph->evalOpParm(myNoisemaskgaintexture, nodeidx, "noisemaskgaintexture", time, 0);
667  myNoisemaskbias = 0.5;
668  if (true && ( (true&&!(((getUsenoisemask()==0)))) ) )
669  graph->evalOpParm(myNoisemaskbias, nodeidx, "noisemaskbias", time, 0);
670  myNoisemaskbiasoverride = 0;
671  if (true && ( (true&&!(((getUsenoisemask()==0)))) ) )
672  graph->evalOpParm(myNoisemaskbiasoverride, nodeidx, "noisemaskbiasoverride", time, 0);
673  myNoisemaskbiascurveattrib = "noisebias"_UTsh;
674  if (true && ( (true&&!(((getUsenoisemask()==0))||((int64(getNoisemaskbiasoverride())!=1)))) ) )
675  graph->evalOpParm(myNoisemaskbiascurveattrib, nodeidx, "noisemaskbiascurveattrib", time, 0);
676  myNoisemaskbiasattrib = "noisebias"_UTsh;
677  if (true && ( (true&&!(((getUsenoisemask()==0))||((int64(getNoisemaskbiasoverride())!=2)))) ) )
678  graph->evalOpParm(myNoisemaskbiasattrib, nodeidx, "noisemaskbiasattrib", time, 0);
679  myNoisemaskbiastexture = ""_UTsh;
680  if (true && ( (true&&!(((getUsenoisemask()==0))||((int64(getNoisemaskbiasoverride())!=3)))) ) )
681  graph->evalOpParm(myNoisemaskbiastexture, nodeidx, "noisemaskbiastexture", time, 0);
682  myNoisemaskcenterone = false;
683  if (true && ( (true&&!(((getUsenoisemask()==0)))) ) )
684  graph->evalOpParm(myNoisemaskcenterone, nodeidx, "noisemaskcenterone", time, 0);
685  myNoisemaskfractal = false;
686  if (true && ( (true&&!(((getUsenoisemask()==0)))) ) )
687  graph->evalOpParm(myNoisemaskfractal, nodeidx, "noisemaskfractal", time, 0);
688  myNoisemaskoct = 8;
689  if (true && ( (true&&!(((getNoisemaskfractal()==0))||((getUsenoisemask()==0)))) ) )
690  graph->evalOpParm(myNoisemaskoct, nodeidx, "noisemaskoct", time, 0);
691  myNoisemasklac = 2.01234;
692  if (true && ( (true&&!(((getNoisemaskfractal()==0))||((getUsenoisemask()==0)))) ) )
693  graph->evalOpParm(myNoisemasklac, nodeidx, "noisemasklac", time, 0);
694  myNoisemaskrough = 0.5;
695  if (true && ( (true&&!(((getNoisemaskfractal()==0))||((getUsenoisemask()==0)))) ) )
696  graph->evalOpParm(myNoisemaskrough, nodeidx, "noisemaskrough", time, 0);
697  myNoisemaskroughoverride = 0;
698  if (true && ( (true&&!(((getNoisemaskfractal()==0))||((getUsenoisemask()==0)))) ) )
699  graph->evalOpParm(myNoisemaskroughoverride, nodeidx, "noisemaskroughoverride", time, 0);
700  myNoisemaskroughcurveattrib = "noiserough"_UTsh;
701  if (true && ( (true&&!(((getNoisemaskfractal()==0))||((getUsenoisemask()==0))||((int64(getNoisemaskroughoverride())!=1)))) ) )
702  graph->evalOpParm(myNoisemaskroughcurveattrib, nodeidx, "noisemaskroughcurveattrib", time, 0);
703  myNoisemaskroughattrib = "noiserough"_UTsh;
704  if (true && ( (true&&!(((getNoisemaskfractal()==0))||((getUsenoisemask()==0))||((int64(getNoisemaskroughoverride())!=2)))) ) )
705  graph->evalOpParm(myNoisemaskroughattrib, nodeidx, "noisemaskroughattrib", time, 0);
706  myNoisemaskroughtexture = ""_UTsh;
707  if (true && ( (true&&!(((getNoisemaskfractal()==0))||((getUsenoisemask()==0))||((int64(getNoisemaskroughoverride())!=3)))) ) )
708  graph->evalOpParm(myNoisemaskroughtexture, nodeidx, "noisemaskroughtexture", time, 0);
709  myUselengthmask = false;
710  if (true)
711  graph->evalOpParm(myUselengthmask, nodeidx, "uselengthmask", time, 0);
712  myLengthmode = 3;
713  if (true && ( (true&&!(((getUselengthmask()==0)))) ) )
714  graph->evalOpParm(myLengthmode, nodeidx, "lengthmode", time, 0);
715  myLengthref = 0.1;
716  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0)))) ) )
717  graph->evalOpParm(myLengthref, nodeidx, "lengthref", time, 0);
718  myLengthrefoverride = 0;
719  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0)))) ) )
720  graph->evalOpParm(myLengthrefoverride, nodeidx, "lengthrefoverride", time, 0);
721  myLengthrefcurveattrib = "lengthscale"_UTsh;
722  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0))||((int64(getLengthrefoverride())!=1)))) ) )
723  graph->evalOpParm(myLengthrefcurveattrib, nodeidx, "lengthrefcurveattrib", time, 0);
724  myLengthrefattrib = "lengthscale"_UTsh;
725  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0))||((int64(getLengthrefoverride())!=2)))) ) )
726  graph->evalOpParm(myLengthrefattrib, nodeidx, "lengthrefattrib", time, 0);
727  myLengthreftexture = ""_UTsh;
728  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0))||((int64(getLengthrefoverride())!=3)))) ) )
729  graph->evalOpParm(myLengthreftexture, nodeidx, "lengthreftexture", time, 0);
730  myLengthfalloffrange = 0.05;
731  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0)))) ) )
732  graph->evalOpParm(myLengthfalloffrange, nodeidx, "lengthfalloffrange", time, 0);
733  myLengthfalloffrangeoverride = 0;
734  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0)))) ) )
735  graph->evalOpParm(myLengthfalloffrangeoverride, nodeidx, "lengthfalloffrangeoverride", time, 0);
736  myLengthfalloffrangecurveattrib = "lengthfalloffrange"_UTsh;
737  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0))||((int64(getLengthfalloffrangeoverride())!=1)))) ) )
738  graph->evalOpParm(myLengthfalloffrangecurveattrib, nodeidx, "lengthfalloffrangecurveattrib", time, 0);
739  myLengthfalloffrangeattrib = "lengthfalloffrange"_UTsh;
740  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0))||((int64(getLengthfalloffrangeoverride())!=2)))) ) )
741  graph->evalOpParm(myLengthfalloffrangeattrib, nodeidx, "lengthfalloffrangeattrib", time, 0);
742  myLengthfalloffrangetexture = ""_UTsh;
743  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0))||((int64(getLengthfalloffrangeoverride())!=3)))) ) )
744  graph->evalOpParm(myLengthfalloffrangetexture, nodeidx, "lengthfalloffrangetexture", time, 0);
745  myLengthfalloffdecay = 1;
746  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0)))) ) )
747  graph->evalOpParm(myLengthfalloffdecay, nodeidx, "lengthfalloffdecay", time, 0);
748  myLengthfalloffdecayoverride = 0;
749  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0)))) ) )
750  graph->evalOpParm(myLengthfalloffdecayoverride, nodeidx, "lengthfalloffdecayoverride", time, 0);
751  myLengthfalloffdecaycurveattrib = "lengthfalloffdecay"_UTsh;
752  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0))||((int64(getLengthfalloffdecayoverride())!=1)))) ) )
753  graph->evalOpParm(myLengthfalloffdecaycurveattrib, nodeidx, "lengthfalloffdecaycurveattrib", time, 0);
754  myLengthfalloffdecayattrib = "lengthfalloffdecay"_UTsh;
755  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0))||((int64(getLengthfalloffdecayoverride())!=2)))) ) )
756  graph->evalOpParm(myLengthfalloffdecayattrib, nodeidx, "lengthfalloffdecayattrib", time, 0);
757  myLengthfalloffdecaytexture = ""_UTsh;
758  if (true && ( (true&&!(((int64(getLengthmode())!=2)&&(int64(getLengthmode())!=1)&&(int64(getLengthmode())!=0))||((getUselengthmask()==0))||((int64(getLengthfalloffdecayoverride())!=3)))) ) )
759  graph->evalOpParm(myLengthfalloffdecaytexture, nodeidx, "lengthfalloffdecaytexture", time, 0);
760  myLengthrangemin = 0;
761  if (true && ( (true&&!(((int64(getLengthmode())!=4))||((getUselengthmask()==0)))) ) )
762  graph->evalOpParm(myLengthrangemin, nodeidx, "lengthrangemin", time, 0);
763  myLengthrangemax = 0.1;
764  if (true && ( (true&&!(((int64(getLengthmode())!=4))||((getUselengthmask()==0)))) ) )
765  graph->evalOpParm(myLengthrangemax, nodeidx, "lengthrangemax", time, 0);
766  myLengthpresets = 2;
767  if (true && ( (true&&!(((int64(getLengthmode())!=3)&&(int64(getLengthmode())!=4))||((getUselengthmask()==0)))) ) )
768  graph->evalOpParm(myLengthpresets, nodeidx, "lengthpresets", time, 0);
769  myLengthramp = UT_SharedPtr<UT_Ramp>(0);
770  if (true && ( (true&&!(((int64(getLengthmode())!=3)&&(int64(getLengthmode())!=4))||((getUselengthmask()==0)))) ) )
771  graph->evalOpParm(myLengthramp, nodeidx, "lengthramp", time, 0);
772  myUseskincurvmask = false;
773  if (true)
774  graph->evalOpParm(myUseskincurvmask, nodeidx, "useskincurvmask", time, 0);
775  mySkincurvconcavemax = 0.25;
776  if (true && ( (true&&!(((getUseskincurvmask()==0)))) ) )
777  graph->evalOpParm(mySkincurvconcavemax, nodeidx, "skincurvconcavemax", time, 0);
778  mySkincurvconvexmax = 0.25;
779  if (true && ( (true&&!(((getUseskincurvmask()==0)))) ) )
780  graph->evalOpParm(mySkincurvconvexmax, nodeidx, "skincurvconvexmax", time, 0);
781  mySkincurvesmoothstrength = 10;
782  if (true && ( (true&&!(((getUseskincurvmask()==0)))) ) )
783  graph->evalOpParm(mySkincurvesmoothstrength, nodeidx, "skincurvesmoothstrength", time, 0);
784  mySkincurvpresets = 1;
785  if (true && ( (true&&!(((getUseskincurvmask()==0)))) ) )
786  graph->evalOpParm(mySkincurvpresets, nodeidx, "skincurvpresets", time, 0);
787  mySkincurvramp = UT_SharedPtr<UT_Ramp>(0);
788  if (true && ( (true&&!(((getUseskincurvmask()==0)))) ) )
789  graph->evalOpParm(mySkincurvramp, nodeidx, "skincurvramp", time, 0);
790  myUsegeomask = false;
791  if (true)
792  graph->evalOpParm(myUsegeomask, nodeidx, "usegeomask", time, 0);
793  myGeovoxelsize = 0.1;
794  if (true && ( (true&&!(((getUsegeomask()==0)))) ) )
795  graph->evalOpParm(myGeovoxelsize, nodeidx, "geovoxelsize", time, 0);
796  myGeointrange = 1e-05;
797  if (true && ( (true&&!(((getUsegeomask()==0)))) ) )
798  graph->evalOpParm(myGeointrange, nodeidx, "geointrange", time, 0);
799  myGeoextrange = 1e-05;
800  if (true && ( (true&&!(((getUsegeomask()==0)))) ) )
801  graph->evalOpParm(myGeoextrange, nodeidx, "geoextrange", time, 0);
802  myGeodepthramppresets = 0;
803  if (true && ( (true&&!(((getUsegeomask()==0)))) ) )
804  graph->evalOpParm(myGeodepthramppresets, nodeidx, "geodepthramppresets", time, 0);
805  myGeodepthramp = UT_SharedPtr<UT_Ramp>(0);
806  if (true && ( (true&&!(((getUsegeomask()==0)))) ) )
807  graph->evalOpParm(myGeodepthramp, nodeidx, "geodepthramp", time, 0);
808  myGeodoblur = false;
809  if (true && ( (true&&!(((getUsegeomask()==0)))) ) )
810  graph->evalOpParm(myGeodoblur, nodeidx, "geodoblur", time, 0);
811  myGeoblurradius = 0;
812  if (true && ( (true&&!(((getGeodoblur()==0))||((getUsegeomask()==0)))) ) )
813  graph->evalOpParm(myGeoblurradius, nodeidx, "geoblurradius", time, 0);
814  myGeobluriters = 1;
815  if (true && ( (true&&!(((getGeodoblur()==0))||((getUsegeomask()==0)))) ) )
816  graph->evalOpParm(myGeobluriters, nodeidx, "geobluriters", time, 0);
817  myUserandommask = false;
818  if (true)
819  graph->evalOpParm(myUserandommask, nodeidx, "userandommask", time, 0);
820  myRandommaskcombine = 0;
821  if (true && ( (true&&!(((getUserandommask()==0)))) ) )
822  graph->evalOpParm(myRandommaskcombine, nodeidx, "randommaskcombine", time, 0);
823  myRandommaskseed = 0;
824  if (true && ( (true&&!(((getUserandommask()==0)))) ) )
825  graph->evalOpParm(myRandommaskseed, nodeidx, "randommaskseed", time, 0);
826  myRandommaskfrac = 0.1;
827  if (true && ( (true&&!(((getUserandommask()==0)))) ) )
828  graph->evalOpParm(myRandommaskfrac, nodeidx, "randommaskfrac", time, 0);
829  myRandommaskvar = 0;
830  if (true && ( (true&&!(((getUserandommask()==0)))) ) )
831  graph->evalOpParm(myRandommaskvar, nodeidx, "randommaskvar", time, 0);
832  myRandommaskvargain = 0.5;
833  if (true && ( (true&&!(((getRandommaskvar()==0))||((getUserandommask()==0)))) ) )
834  graph->evalOpParm(myRandommaskvargain, nodeidx, "randommaskvargain", time, 0);
835  myUsecurvemask = false;
836  if (true && ( (true&&!(((int64(getOutattribtype())==0)))) ) )
837  graph->evalOpParm(myUsecurvemask, nodeidx, "usecurvemask", time, 0);
838  myCurvemaskabsrange = false;
839  if (true && ( (true&&!(((int64(getOutattribtype())==0))||((getUsecurvemask()==0)))) ) )
840  graph->evalOpParm(myCurvemaskabsrange, nodeidx, "curvemaskabsrange", time, 0);
841  myCurvemaskrangemin = 0;
842  if (true && ( (true&&!(((int64(getOutattribtype())==0))||((getUsecurvemask()==0)))) ) )
843  graph->evalOpParm(myCurvemaskrangemin, nodeidx, "curvemaskrangemin", time, 0);
844  myCurvemaskrangemax = 1;
845  if (true && ( (true&&!(((int64(getOutattribtype())==0))||((getUsecurvemask()==0)))) ) )
846  graph->evalOpParm(myCurvemaskrangemax, nodeidx, "curvemaskrangemax", time, 0);
847  myCurvemaskeffectpos = 1;
848  if (true && ( (true&&!(((int64(getOutattribtype())==0))||((getUsecurvemask()==0)))) ) )
849  graph->evalOpParm(myCurvemaskeffectpos, nodeidx, "curvemaskeffectpos", time, 0);
850  myCurvemaskfalloff = 0.5;
851  if (true && ( (true&&!(((int64(getOutattribtype())==0))||((getUsecurvemask()==0)))) ) )
852  graph->evalOpParm(myCurvemaskfalloff, nodeidx, "curvemaskfalloff", time, 0);
853  myCurvemaskwidth = 1;
854  if (true && ( (true&&!(((int64(getOutattribtype())==0))||((getUsecurvemask()==0)))) ) )
855  graph->evalOpParm(myCurvemaskwidth, nodeidx, "curvemaskwidth", time, 0);
856  myCurvemaskramp = UT_SharedPtr<UT_Ramp>(0);
857  if (true && ( (true&&!(((int64(getOutattribtype())==0))||((getUsecurvemask()==0)))) ) )
858  graph->evalOpParm(myCurvemaskramp, nodeidx, "curvemaskramp", time, 0);
859  myUseskinlookupattribs = true;
860  if (true)
861  graph->evalOpParm(myUseskinlookupattribs, nodeidx, "useskinlookupattribs", time, 0);
862 
863  }
864 
865 
866  void loadFromOpSubclass(const LoadParms &loadparms) override
867  {
868  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
869  }
870 
871 
872  void copyFrom(const OP_NodeParms *src) override
873  {
874  *this = *((const SOP_GuideMaskParms *)src);
875  }
876 
877  template <typename T>
878  void
879  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
880  {
881  if (idx.size() < 1)
882  return;
883  UT_ASSERT(idx.size() == instance.size()+1);
884  if (idx.size() != instance.size()+1)
885  return;
886  switch (idx[0])
887  {
888  case 0:
889  coerceValue(value, myUvattrib);
890  break;
891  case 1:
892  coerceValue(value, myGrouptype);
893  break;
894  case 2:
895  coerceValue(value, myGroup);
896  break;
897  case 3:
898  coerceValue(value, myZeroungrouped);
899  break;
900  case 4:
901  coerceValue(value, myInputmask);
902  break;
903  case 5:
904  coerceValue(value, myInputmaskoverride);
905  break;
906  case 6:
907  coerceValue(value, myInputmaskcurveattrib);
908  break;
909  case 7:
910  coerceValue(value, myInputmaskattrib);
911  break;
912  case 8:
913  coerceValue(value, myInputmasktexture);
914  break;
915  case 9:
916  coerceValue(value, myVismasks);
917  break;
918  case 10:
919  coerceValue(value, myOutattribtype);
920  break;
921  case 11:
922  coerceValue(value, myOutattrib);
923  break;
924  case 12:
925  coerceValue(value, myCreateprimgroup);
926  break;
927  case 13:
928  coerceValue(value, myOutprimgroup);
929  break;
930  case 14:
931  coerceValue(value, myCreateintattrib);
932  break;
933  case 15:
934  coerceValue(value, myIntattrib);
935  break;
936  case 16:
937  coerceValue(value, myIntattribvalue);
938  break;
939  case 17:
940  coerceValue(value, myIntattribthresh);
941  break;
942  case 18:
943  coerceValue(value, myUsenoisemask);
944  break;
945  case 19:
946  coerceValue(value, myNoisemaskamount);
947  break;
948  case 20:
949  coerceValue(value, myNoisemaskamountoverride);
950  break;
951  case 21:
952  coerceValue(value, myNoisemaskamountcurveattrib);
953  break;
954  case 22:
955  coerceValue(value, myNoisemaskamountattrib);
956  break;
957  case 23:
958  coerceValue(value, myNoisemaskamounttexture);
959  break;
960  case 24:
961  coerceValue(value, myNoisemaskfreq);
962  break;
963  case 25:
964  coerceValue(value, myNoisemaskgain);
965  break;
966  case 26:
967  coerceValue(value, myNoisemaskgainoverride);
968  break;
969  case 27:
970  coerceValue(value, myNoisemaskgaincurveattrib);
971  break;
972  case 28:
973  coerceValue(value, myNoisemaskgainattrib);
974  break;
975  case 29:
976  coerceValue(value, myNoisemaskgaintexture);
977  break;
978  case 30:
979  coerceValue(value, myNoisemaskbias);
980  break;
981  case 31:
982  coerceValue(value, myNoisemaskbiasoverride);
983  break;
984  case 32:
985  coerceValue(value, myNoisemaskbiascurveattrib);
986  break;
987  case 33:
988  coerceValue(value, myNoisemaskbiasattrib);
989  break;
990  case 34:
991  coerceValue(value, myNoisemaskbiastexture);
992  break;
993  case 35:
994  coerceValue(value, myNoisemaskcenterone);
995  break;
996  case 36:
997  coerceValue(value, myNoisemaskfractal);
998  break;
999  case 37:
1000  coerceValue(value, myNoisemaskoct);
1001  break;
1002  case 38:
1003  coerceValue(value, myNoisemasklac);
1004  break;
1005  case 39:
1006  coerceValue(value, myNoisemaskrough);
1007  break;
1008  case 40:
1009  coerceValue(value, myNoisemaskroughoverride);
1010  break;
1011  case 41:
1012  coerceValue(value, myNoisemaskroughcurveattrib);
1013  break;
1014  case 42:
1015  coerceValue(value, myNoisemaskroughattrib);
1016  break;
1017  case 43:
1018  coerceValue(value, myNoisemaskroughtexture);
1019  break;
1020  case 44:
1021  coerceValue(value, myUselengthmask);
1022  break;
1023  case 45:
1024  coerceValue(value, myLengthmode);
1025  break;
1026  case 46:
1027  coerceValue(value, myLengthref);
1028  break;
1029  case 47:
1030  coerceValue(value, myLengthrefoverride);
1031  break;
1032  case 48:
1033  coerceValue(value, myLengthrefcurveattrib);
1034  break;
1035  case 49:
1036  coerceValue(value, myLengthrefattrib);
1037  break;
1038  case 50:
1039  coerceValue(value, myLengthreftexture);
1040  break;
1041  case 51:
1042  coerceValue(value, myLengthfalloffrange);
1043  break;
1044  case 52:
1045  coerceValue(value, myLengthfalloffrangeoverride);
1046  break;
1047  case 53:
1048  coerceValue(value, myLengthfalloffrangecurveattrib);
1049  break;
1050  case 54:
1051  coerceValue(value, myLengthfalloffrangeattrib);
1052  break;
1053  case 55:
1054  coerceValue(value, myLengthfalloffrangetexture);
1055  break;
1056  case 56:
1057  coerceValue(value, myLengthfalloffdecay);
1058  break;
1059  case 57:
1060  coerceValue(value, myLengthfalloffdecayoverride);
1061  break;
1062  case 58:
1063  coerceValue(value, myLengthfalloffdecaycurveattrib);
1064  break;
1065  case 59:
1066  coerceValue(value, myLengthfalloffdecayattrib);
1067  break;
1068  case 60:
1069  coerceValue(value, myLengthfalloffdecaytexture);
1070  break;
1071  case 61:
1072  coerceValue(value, myLengthrangemin);
1073  break;
1074  case 62:
1075  coerceValue(value, myLengthrangemax);
1076  break;
1077  case 63:
1078  coerceValue(value, myLengthpresets);
1079  break;
1080  case 64:
1081  coerceValue(value, myLengthramp);
1082  break;
1083  case 65:
1084  coerceValue(value, myUseskincurvmask);
1085  break;
1086  case 66:
1087  coerceValue(value, mySkincurvconcavemax);
1088  break;
1089  case 67:
1090  coerceValue(value, mySkincurvconvexmax);
1091  break;
1092  case 68:
1093  coerceValue(value, mySkincurvesmoothstrength);
1094  break;
1095  case 69:
1096  coerceValue(value, mySkincurvpresets);
1097  break;
1098  case 70:
1099  coerceValue(value, mySkincurvramp);
1100  break;
1101  case 71:
1102  coerceValue(value, myUsegeomask);
1103  break;
1104  case 72:
1105  coerceValue(value, myGeovoxelsize);
1106  break;
1107  case 73:
1108  coerceValue(value, myGeointrange);
1109  break;
1110  case 74:
1111  coerceValue(value, myGeoextrange);
1112  break;
1113  case 75:
1114  coerceValue(value, myGeodepthramppresets);
1115  break;
1116  case 76:
1117  coerceValue(value, myGeodepthramp);
1118  break;
1119  case 77:
1120  coerceValue(value, myGeodoblur);
1121  break;
1122  case 78:
1123  coerceValue(value, myGeoblurradius);
1124  break;
1125  case 79:
1126  coerceValue(value, myGeobluriters);
1127  break;
1128  case 80:
1129  coerceValue(value, myUserandommask);
1130  break;
1131  case 81:
1132  coerceValue(value, myRandommaskcombine);
1133  break;
1134  case 82:
1135  coerceValue(value, myRandommaskseed);
1136  break;
1137  case 83:
1138  coerceValue(value, myRandommaskfrac);
1139  break;
1140  case 84:
1141  coerceValue(value, myRandommaskvar);
1142  break;
1143  case 85:
1144  coerceValue(value, myRandommaskvargain);
1145  break;
1146  case 86:
1147  coerceValue(value, myUsecurvemask);
1148  break;
1149  case 87:
1150  coerceValue(value, myCurvemaskabsrange);
1151  break;
1152  case 88:
1153  coerceValue(value, myCurvemaskrangemin);
1154  break;
1155  case 89:
1156  coerceValue(value, myCurvemaskrangemax);
1157  break;
1158  case 90:
1159  coerceValue(value, myCurvemaskeffectpos);
1160  break;
1161  case 91:
1162  coerceValue(value, myCurvemaskfalloff);
1163  break;
1164  case 92:
1165  coerceValue(value, myCurvemaskwidth);
1166  break;
1167  case 93:
1168  coerceValue(value, myCurvemaskramp);
1169  break;
1170  case 94:
1171  coerceValue(value, myUseskinlookupattribs);
1172  break;
1173 
1174  }
1175  }
1176 
1177  bool isParmColorRamp(exint idx) const override
1178  {
1179  switch (idx)
1180  {
1181 
1182  }
1183  return false;
1184  }
1185 
1186  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
1187  { doGetParmValue(idx, instance, value); }
1188  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
1189  { doGetParmValue(idx, instance, value); }
1190  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
1191  { doGetParmValue(idx, instance, value); }
1192  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
1193  { doGetParmValue(idx, instance, value); }
1194  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
1195  { doGetParmValue(idx, instance, value); }
1196  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
1197  { doGetParmValue(idx, instance, value); }
1198  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
1199  { doGetParmValue(idx, instance, value); }
1200  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
1201  { doGetParmValue(idx, instance, value); }
1202  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
1203  { doGetParmValue(idx, instance, value); }
1204  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
1205  { doGetParmValue(idx, instance, value); }
1206  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
1207  { doGetParmValue(idx, instance, value); }
1208 
1209  template <typename T>
1210  void
1211  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
1212  {
1213  if (idx.size() < 1)
1214  return;
1215  UT_ASSERT(idx.size() == instance.size()+1);
1216  if (idx.size() != instance.size()+1)
1217  return;
1218  switch (idx[0])
1219  {
1220  case 0:
1221  coerceValue(myUvattrib, ( ( value ) ));
1222  break;
1223  case 1:
1224  coerceValue(myGrouptype, clampMinValue(0, clampMaxValue(2, value ) ));
1225  break;
1226  case 2:
1227  coerceValue(myGroup, ( ( value ) ));
1228  break;
1229  case 3:
1230  coerceValue(myZeroungrouped, ( ( value ) ));
1231  break;
1232  case 4:
1233  coerceValue(myInputmask, ( ( value ) ));
1234  break;
1235  case 5:
1236  coerceValue(myInputmaskoverride, clampMinValue(0, clampMaxValue(3, value ) ));
1237  break;
1238  case 6:
1239  coerceValue(myInputmaskcurveattrib, ( ( value ) ));
1240  break;
1241  case 7:
1242  coerceValue(myInputmaskattrib, ( ( value ) ));
1243  break;
1244  case 8:
1245  coerceValue(myInputmasktexture, ( ( value ) ));
1246  break;
1247  case 9:
1248  coerceValue(myVismasks, ( ( value ) ));
1249  break;
1250  case 10:
1251  coerceValue(myOutattribtype, clampMinValue(0, clampMaxValue(1, value ) ));
1252  break;
1253  case 11:
1254  coerceValue(myOutattrib, ( ( value ) ));
1255  break;
1256  case 12:
1257  coerceValue(myCreateprimgroup, ( ( value ) ));
1258  break;
1259  case 13:
1260  coerceValue(myOutprimgroup, ( ( value ) ));
1261  break;
1262  case 14:
1263  coerceValue(myCreateintattrib, ( ( value ) ));
1264  break;
1265  case 15:
1266  coerceValue(myIntattrib, ( ( value ) ));
1267  break;
1268  case 16:
1269  coerceValue(myIntattribvalue, ( ( value ) ));
1270  break;
1271  case 17:
1272  coerceValue(myIntattribthresh, ( ( value ) ));
1273  break;
1274  case 18:
1275  coerceValue(myUsenoisemask, ( ( value ) ));
1276  break;
1277  case 19:
1278  coerceValue(myNoisemaskamount, ( ( value ) ));
1279  break;
1280  case 20:
1281  coerceValue(myNoisemaskamountoverride, clampMinValue(0, clampMaxValue(3, value ) ));
1282  break;
1283  case 21:
1284  coerceValue(myNoisemaskamountcurveattrib, ( ( value ) ));
1285  break;
1286  case 22:
1287  coerceValue(myNoisemaskamountattrib, ( ( value ) ));
1288  break;
1289  case 23:
1290  coerceValue(myNoisemaskamounttexture, ( ( value ) ));
1291  break;
1292  case 24:
1293  coerceValue(myNoisemaskfreq, ( ( value ) ));
1294  break;
1295  case 25:
1296  coerceValue(myNoisemaskgain, ( ( value ) ));
1297  break;
1298  case 26:
1299  coerceValue(myNoisemaskgainoverride, clampMinValue(0, clampMaxValue(3, value ) ));
1300  break;
1301  case 27:
1302  coerceValue(myNoisemaskgaincurveattrib, ( ( value ) ));
1303  break;
1304  case 28:
1305  coerceValue(myNoisemaskgainattrib, ( ( value ) ));
1306  break;
1307  case 29:
1308  coerceValue(myNoisemaskgaintexture, ( ( value ) ));
1309  break;
1310  case 30:
1311  coerceValue(myNoisemaskbias, ( ( value ) ));
1312  break;
1313  case 31:
1314  coerceValue(myNoisemaskbiasoverride, clampMinValue(0, clampMaxValue(3, value ) ));
1315  break;
1316  case 32:
1317  coerceValue(myNoisemaskbiascurveattrib, ( ( value ) ));
1318  break;
1319  case 33:
1320  coerceValue(myNoisemaskbiasattrib, ( ( value ) ));
1321  break;
1322  case 34:
1323  coerceValue(myNoisemaskbiastexture, ( ( value ) ));
1324  break;
1325  case 35:
1326  coerceValue(myNoisemaskcenterone, ( ( value ) ));
1327  break;
1328  case 36:
1329  coerceValue(myNoisemaskfractal, ( ( value ) ));
1330  break;
1331  case 37:
1332  coerceValue(myNoisemaskoct, ( ( value ) ));
1333  break;
1334  case 38:
1335  coerceValue(myNoisemasklac, ( ( value ) ));
1336  break;
1337  case 39:
1338  coerceValue(myNoisemaskrough, ( ( value ) ));
1339  break;
1340  case 40:
1341  coerceValue(myNoisemaskroughoverride, clampMinValue(0, clampMaxValue(3, value ) ));
1342  break;
1343  case 41:
1344  coerceValue(myNoisemaskroughcurveattrib, ( ( value ) ));
1345  break;
1346  case 42:
1347  coerceValue(myNoisemaskroughattrib, ( ( value ) ));
1348  break;
1349  case 43:
1350  coerceValue(myNoisemaskroughtexture, ( ( value ) ));
1351  break;
1352  case 44:
1353  coerceValue(myUselengthmask, ( ( value ) ));
1354  break;
1355  case 45:
1356  coerceValue(myLengthmode, clampMinValue(0, clampMaxValue(4, value ) ));
1357  break;
1358  case 46:
1359  coerceValue(myLengthref, ( ( value ) ));
1360  break;
1361  case 47:
1362  coerceValue(myLengthrefoverride, clampMinValue(0, clampMaxValue(3, value ) ));
1363  break;
1364  case 48:
1365  coerceValue(myLengthrefcurveattrib, ( ( value ) ));
1366  break;
1367  case 49:
1368  coerceValue(myLengthrefattrib, ( ( value ) ));
1369  break;
1370  case 50:
1371  coerceValue(myLengthreftexture, ( ( value ) ));
1372  break;
1373  case 51:
1374  coerceValue(myLengthfalloffrange, ( ( value ) ));
1375  break;
1376  case 52:
1377  coerceValue(myLengthfalloffrangeoverride, clampMinValue(0, clampMaxValue(3, value ) ));
1378  break;
1379  case 53:
1380  coerceValue(myLengthfalloffrangecurveattrib, ( ( value ) ));
1381  break;
1382  case 54:
1383  coerceValue(myLengthfalloffrangeattrib, ( ( value ) ));
1384  break;
1385  case 55:
1386  coerceValue(myLengthfalloffrangetexture, ( ( value ) ));
1387  break;
1388  case 56:
1389  coerceValue(myLengthfalloffdecay, ( clampMaxValue(-05, value ) ));
1390  break;
1391  case 57:
1392  coerceValue(myLengthfalloffdecayoverride, clampMinValue(0, clampMaxValue(3, value ) ));
1393  break;
1394  case 58:
1395  coerceValue(myLengthfalloffdecaycurveattrib, ( ( value ) ));
1396  break;
1397  case 59:
1398  coerceValue(myLengthfalloffdecayattrib, ( ( value ) ));
1399  break;
1400  case 60:
1401  coerceValue(myLengthfalloffdecaytexture, ( ( value ) ));
1402  break;
1403  case 61:
1404  coerceValue(myLengthrangemin, clampMinValue(0, ( value ) ));
1405  break;
1406  case 62:
1407  coerceValue(myLengthrangemax, clampMinValue(0, ( value ) ));
1408  break;
1409  case 63:
1410  coerceValue(myLengthpresets, clampMinValue(0, clampMaxValue(2, value ) ));
1411  break;
1412  case 64:
1413  coerceValue(myLengthramp, clampMinValue(1, ( value ) ));
1414  break;
1415  case 65:
1416  coerceValue(myUseskincurvmask, ( ( value ) ));
1417  break;
1418  case 66:
1419  coerceValue(mySkincurvconcavemax, clampMinValue(0, clampMaxValue(1, value ) ));
1420  break;
1421  case 67:
1422  coerceValue(mySkincurvconvexmax, clampMinValue(0, clampMaxValue(1, value ) ));
1423  break;
1424  case 68:
1425  coerceValue(mySkincurvesmoothstrength, clampMinValue(0, ( value ) ));
1426  break;
1427  case 69:
1428  coerceValue(mySkincurvpresets, clampMinValue(0, clampMaxValue(5, value ) ));
1429  break;
1430  case 70:
1431  coerceValue(mySkincurvramp, clampMinValue(1, ( value ) ));
1432  break;
1433  case 71:
1434  coerceValue(myUsegeomask, ( ( value ) ));
1435  break;
1436  case 72:
1437  coerceValue(myGeovoxelsize, ( ( value ) ));
1438  break;
1439  case 73:
1440  coerceValue(myGeointrange, ( clampMaxValue(-05, value ) ));
1441  break;
1442  case 74:
1443  coerceValue(myGeoextrange, ( clampMaxValue(-05, value ) ));
1444  break;
1445  case 75:
1446  coerceValue(myGeodepthramppresets, clampMinValue(0, clampMaxValue(2, value ) ));
1447  break;
1448  case 76:
1449  coerceValue(myGeodepthramp, clampMinValue(1, ( value ) ));
1450  break;
1451  case 77:
1452  coerceValue(myGeodoblur, ( ( value ) ));
1453  break;
1454  case 78:
1455  coerceValue(myGeoblurradius, clampMinValue(0, ( value ) ));
1456  break;
1457  case 79:
1458  coerceValue(myGeobluriters, clampMinValue(1, ( value ) ));
1459  break;
1460  case 80:
1461  coerceValue(myUserandommask, ( ( value ) ));
1462  break;
1463  case 81:
1464  coerceValue(myRandommaskcombine, clampMinValue(0, clampMaxValue(2, value ) ));
1465  break;
1466  case 82:
1467  coerceValue(myRandommaskseed, ( ( value ) ));
1468  break;
1469  case 83:
1470  coerceValue(myRandommaskfrac, clampMinValue(0, clampMaxValue(1, value ) ));
1471  break;
1472  case 84:
1473  coerceValue(myRandommaskvar, clampMinValue(0, clampMaxValue(1, value ) ));
1474  break;
1475  case 85:
1476  coerceValue(myRandommaskvargain, clampMinValue(0, clampMaxValue(1, value ) ));
1477  break;
1478  case 86:
1479  coerceValue(myUsecurvemask, ( ( value ) ));
1480  break;
1481  case 87:
1482  coerceValue(myCurvemaskabsrange, ( ( value ) ));
1483  break;
1484  case 88:
1485  coerceValue(myCurvemaskrangemin, ( ( value ) ));
1486  break;
1487  case 89:
1488  coerceValue(myCurvemaskrangemax, ( ( value ) ));
1489  break;
1490  case 90:
1491  coerceValue(myCurvemaskeffectpos, clampMinValue(0, ( value ) ));
1492  break;
1493  case 91:
1494  coerceValue(myCurvemaskfalloff, clampMinValue(0, ( value ) ));
1495  break;
1496  case 92:
1497  coerceValue(myCurvemaskwidth, clampMinValue(0, ( value ) ));
1498  break;
1499  case 93:
1500  coerceValue(myCurvemaskramp, clampMinValue(1, ( value ) ));
1501  break;
1502  case 94:
1503  coerceValue(myUseskinlookupattribs, ( ( value ) ));
1504  break;
1505 
1506  }
1507  }
1508 
1509  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
1510  { doSetParmValue(idx, instance, value); }
1511  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
1512  { doSetParmValue(idx, instance, value); }
1513  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
1514  { doSetParmValue(idx, instance, value); }
1515  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
1516  { doSetParmValue(idx, instance, value); }
1517  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
1518  { doSetParmValue(idx, instance, value); }
1519  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
1520  { doSetParmValue(idx, instance, value); }
1521  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
1522  { doSetParmValue(idx, instance, value); }
1523  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
1524  { doSetParmValue(idx, instance, value); }
1525  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
1526  { doSetParmValue(idx, instance, value); }
1527  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
1528  { doSetParmValue(idx, instance, value); }
1529  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
1530  { doSetParmValue(idx, instance, value); }
1531 
1532  exint getNestNumParms(TempIndex idx) const override
1533  {
1534  if (idx.size() == 0)
1535  return 95;
1536  switch (idx[0])
1537  {
1538 
1539  }
1540  // Invalid
1541  return 0;
1542  }
1543 
1544  const char *getNestParmName(TempIndex fieldnum) const override
1545  {
1546  if (fieldnum.size() < 1)
1547  return 0;
1548  switch (fieldnum[0])
1549  {
1550  case 0:
1551  return "uvattrib";
1552  case 1:
1553  return "grouptype";
1554  case 2:
1555  return "group";
1556  case 3:
1557  return "zeroungrouped";
1558  case 4:
1559  return "inputmask";
1560  case 5:
1561  return "inputmaskoverride";
1562  case 6:
1563  return "inputmaskcurveattrib";
1564  case 7:
1565  return "inputmaskattrib";
1566  case 8:
1567  return "inputmasktexture";
1568  case 9:
1569  return "vismasks";
1570  case 10:
1571  return "outattribtype";
1572  case 11:
1573  return "outattrib";
1574  case 12:
1575  return "createprimgroup";
1576  case 13:
1577  return "outprimgroup";
1578  case 14:
1579  return "createintattrib";
1580  case 15:
1581  return "intattrib";
1582  case 16:
1583  return "intattribvalue";
1584  case 17:
1585  return "intattribthresh";
1586  case 18:
1587  return "usenoisemask";
1588  case 19:
1589  return "noisemaskamount";
1590  case 20:
1591  return "noisemaskamountoverride";
1592  case 21:
1593  return "noisemaskamountcurveattrib";
1594  case 22:
1595  return "noisemaskamountattrib";
1596  case 23:
1597  return "noisemaskamounttexture";
1598  case 24:
1599  return "noisemaskfreq";
1600  case 25:
1601  return "noisemaskgain";
1602  case 26:
1603  return "noisemaskgainoverride";
1604  case 27:
1605  return "noisemaskgaincurveattrib";
1606  case 28:
1607  return "noisemaskgainattrib";
1608  case 29:
1609  return "noisemaskgaintexture";
1610  case 30:
1611  return "noisemaskbias";
1612  case 31:
1613  return "noisemaskbiasoverride";
1614  case 32:
1615  return "noisemaskbiascurveattrib";
1616  case 33:
1617  return "noisemaskbiasattrib";
1618  case 34:
1619  return "noisemaskbiastexture";
1620  case 35:
1621  return "noisemaskcenterone";
1622  case 36:
1623  return "noisemaskfractal";
1624  case 37:
1625  return "noisemaskoct";
1626  case 38:
1627  return "noisemasklac";
1628  case 39:
1629  return "noisemaskrough";
1630  case 40:
1631  return "noisemaskroughoverride";
1632  case 41:
1633  return "noisemaskroughcurveattrib";
1634  case 42:
1635  return "noisemaskroughattrib";
1636  case 43:
1637  return "noisemaskroughtexture";
1638  case 44:
1639  return "uselengthmask";
1640  case 45:
1641  return "lengthmode";
1642  case 46:
1643  return "lengthref";
1644  case 47:
1645  return "lengthrefoverride";
1646  case 48:
1647  return "lengthrefcurveattrib";
1648  case 49:
1649  return "lengthrefattrib";
1650  case 50:
1651  return "lengthreftexture";
1652  case 51:
1653  return "lengthfalloffrange";
1654  case 52:
1655  return "lengthfalloffrangeoverride";
1656  case 53:
1657  return "lengthfalloffrangecurveattrib";
1658  case 54:
1659  return "lengthfalloffrangeattrib";
1660  case 55:
1661  return "lengthfalloffrangetexture";
1662  case 56:
1663  return "lengthfalloffdecay";
1664  case 57:
1665  return "lengthfalloffdecayoverride";
1666  case 58:
1667  return "lengthfalloffdecaycurveattrib";
1668  case 59:
1669  return "lengthfalloffdecayattrib";
1670  case 60:
1671  return "lengthfalloffdecaytexture";
1672  case 61:
1673  return "lengthrangemin";
1674  case 62:
1675  return "lengthrangemax";
1676  case 63:
1677  return "lengthpresets";
1678  case 64:
1679  return "lengthramp";
1680  case 65:
1681  return "useskincurvmask";
1682  case 66:
1683  return "skincurvconcavemax";
1684  case 67:
1685  return "skincurvconvexmax";
1686  case 68:
1687  return "skincurvesmoothstrength";
1688  case 69:
1689  return "skincurvpresets";
1690  case 70:
1691  return "skincurvramp";
1692  case 71:
1693  return "usegeomask";
1694  case 72:
1695  return "geovoxelsize";
1696  case 73:
1697  return "geointrange";
1698  case 74:
1699  return "geoextrange";
1700  case 75:
1701  return "geodepthramppresets";
1702  case 76:
1703  return "geodepthramp";
1704  case 77:
1705  return "geodoblur";
1706  case 78:
1707  return "geoblurradius";
1708  case 79:
1709  return "geobluriters";
1710  case 80:
1711  return "userandommask";
1712  case 81:
1713  return "randommaskcombine";
1714  case 82:
1715  return "randommaskseed";
1716  case 83:
1717  return "randommaskfrac";
1718  case 84:
1719  return "randommaskvar";
1720  case 85:
1721  return "randommaskvargain";
1722  case 86:
1723  return "usecurvemask";
1724  case 87:
1725  return "curvemaskabsrange";
1726  case 88:
1727  return "curvemaskrangemin";
1728  case 89:
1729  return "curvemaskrangemax";
1730  case 90:
1731  return "curvemaskeffectpos";
1732  case 91:
1733  return "curvemaskfalloff";
1734  case 92:
1735  return "curvemaskwidth";
1736  case 93:
1737  return "curvemaskramp";
1738  case 94:
1739  return "useskinlookupattribs";
1740 
1741  }
1742  return 0;
1743  }
1744 
1745  ParmType getNestParmType(TempIndex fieldnum) const override
1746  {
1747  if (fieldnum.size() < 1)
1748  return PARM_UNSUPPORTED;
1749  switch (fieldnum[0])
1750  {
1751  case 0:
1752  return PARM_STRING;
1753  case 1:
1754  return PARM_INTEGER;
1755  case 2:
1756  return PARM_STRING;
1757  case 3:
1758  return PARM_INTEGER;
1759  case 4:
1760  return PARM_FLOAT;
1761  case 5:
1762  return PARM_INTEGER;
1763  case 6:
1764  return PARM_STRING;
1765  case 7:
1766  return PARM_STRING;
1767  case 8:
1768  return PARM_STRING;
1769  case 9:
1770  return PARM_INTEGER;
1771  case 10:
1772  return PARM_INTEGER;
1773  case 11:
1774  return PARM_STRING;
1775  case 12:
1776  return PARM_INTEGER;
1777  case 13:
1778  return PARM_STRING;
1779  case 14:
1780  return PARM_INTEGER;
1781  case 15:
1782  return PARM_STRING;
1783  case 16:
1784  return PARM_INTEGER;
1785  case 17:
1786  return PARM_FLOAT;
1787  case 18:
1788  return PARM_INTEGER;
1789  case 19:
1790  return PARM_FLOAT;
1791  case 20:
1792  return PARM_INTEGER;
1793  case 21:
1794  return PARM_STRING;
1795  case 22:
1796  return PARM_STRING;
1797  case 23:
1798  return PARM_STRING;
1799  case 24:
1800  return PARM_FLOAT;
1801  case 25:
1802  return PARM_FLOAT;
1803  case 26:
1804  return PARM_INTEGER;
1805  case 27:
1806  return PARM_STRING;
1807  case 28:
1808  return PARM_STRING;
1809  case 29:
1810  return PARM_STRING;
1811  case 30:
1812  return PARM_FLOAT;
1813  case 31:
1814  return PARM_INTEGER;
1815  case 32:
1816  return PARM_STRING;
1817  case 33:
1818  return PARM_STRING;
1819  case 34:
1820  return PARM_STRING;
1821  case 35:
1822  return PARM_INTEGER;
1823  case 36:
1824  return PARM_INTEGER;
1825  case 37:
1826  return PARM_FLOAT;
1827  case 38:
1828  return PARM_FLOAT;
1829  case 39:
1830  return PARM_FLOAT;
1831  case 40:
1832  return PARM_INTEGER;
1833  case 41:
1834  return PARM_STRING;
1835  case 42:
1836  return PARM_STRING;
1837  case 43:
1838  return PARM_STRING;
1839  case 44:
1840  return PARM_INTEGER;
1841  case 45:
1842  return PARM_INTEGER;
1843  case 46:
1844  return PARM_FLOAT;
1845  case 47:
1846  return PARM_INTEGER;
1847  case 48:
1848  return PARM_STRING;
1849  case 49:
1850  return PARM_STRING;
1851  case 50:
1852  return PARM_STRING;
1853  case 51:
1854  return PARM_FLOAT;
1855  case 52:
1856  return PARM_INTEGER;
1857  case 53:
1858  return PARM_STRING;
1859  case 54:
1860  return PARM_STRING;
1861  case 55:
1862  return PARM_STRING;
1863  case 56:
1864  return PARM_FLOAT;
1865  case 57:
1866  return PARM_INTEGER;
1867  case 58:
1868  return PARM_STRING;
1869  case 59:
1870  return PARM_STRING;
1871  case 60:
1872  return PARM_STRING;
1873  case 61:
1874  return PARM_FLOAT;
1875  case 62:
1876  return PARM_FLOAT;
1877  case 63:
1878  return PARM_INTEGER;
1879  case 64:
1880  return PARM_RAMP;
1881  case 65:
1882  return PARM_INTEGER;
1883  case 66:
1884  return PARM_FLOAT;
1885  case 67:
1886  return PARM_FLOAT;
1887  case 68:
1888  return PARM_FLOAT;
1889  case 69:
1890  return PARM_INTEGER;
1891  case 70:
1892  return PARM_RAMP;
1893  case 71:
1894  return PARM_INTEGER;
1895  case 72:
1896  return PARM_FLOAT;
1897  case 73:
1898  return PARM_FLOAT;
1899  case 74:
1900  return PARM_FLOAT;
1901  case 75:
1902  return PARM_INTEGER;
1903  case 76:
1904  return PARM_RAMP;
1905  case 77:
1906  return PARM_INTEGER;
1907  case 78:
1908  return PARM_FLOAT;
1909  case 79:
1910  return PARM_INTEGER;
1911  case 80:
1912  return PARM_INTEGER;
1913  case 81:
1914  return PARM_INTEGER;
1915  case 82:
1916  return PARM_FLOAT;
1917  case 83:
1918  return PARM_FLOAT;
1919  case 84:
1920  return PARM_FLOAT;
1921  case 85:
1922  return PARM_FLOAT;
1923  case 86:
1924  return PARM_INTEGER;
1925  case 87:
1926  return PARM_INTEGER;
1927  case 88:
1928  return PARM_FLOAT;
1929  case 89:
1930  return PARM_FLOAT;
1931  case 90:
1932  return PARM_FLOAT;
1933  case 91:
1934  return PARM_FLOAT;
1935  case 92:
1936  return PARM_FLOAT;
1937  case 93:
1938  return PARM_RAMP;
1939  case 94:
1940  return PARM_INTEGER;
1941 
1942  }
1943  return PARM_UNSUPPORTED;
1944  }
1945 
1946  // Boiler plate to load individual types.
1947  static void loadData(UT_IStream &is, int64 &v)
1948  { is.bread(&v, 1); }
1949  static void loadData(UT_IStream &is, bool &v)
1950  { int64 iv; is.bread(&iv, 1); v = iv; }
1951  static void loadData(UT_IStream &is, fpreal64 &v)
1952  { is.bread<fpreal64>(&v, 1); }
1953  static void loadData(UT_IStream &is, UT_Vector2D &v)
1954  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
1955  static void loadData(UT_IStream &is, UT_Vector3D &v)
1956  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
1957  is.bread<fpreal64>(&v.z(), 1); }
1958  static void loadData(UT_IStream &is, UT_Vector4D &v)
1959  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
1960  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
1961  static void loadData(UT_IStream &is, UT_Matrix2D &v)
1962  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
1963  static void loadData(UT_IStream &is, UT_Matrix3D &v)
1964  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
1965  static void loadData(UT_IStream &is, UT_Matrix4D &v)
1966  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
1967  static void loadData(UT_IStream &is, UT_Vector2I &v)
1968  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
1969  static void loadData(UT_IStream &is, UT_Vector3I &v)
1970  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
1971  is.bread<int64>(&v.z(), 1); }
1972  static void loadData(UT_IStream &is, UT_Vector4I &v)
1973  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
1974  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
1976  { is.bread(v); }
1978  { UT_StringHolder rampdata;
1979  loadData(is, rampdata);
1980  if (rampdata.isstring())
1981  {
1982  v.reset(new UT_Ramp());
1983  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
1984  v->load(istr);
1985  }
1986  else v.reset();
1987  }
1990  loadData(is, data);
1991  if (data.isstring())
1992  {
1993  // Find the data type.
1994  const char *colon = UT_StringWrap(data).findChar(':');
1995  if (colon)
1996  {
1997  int typelen = colon - data.buffer();
1999  type.strncpy(data.buffer(), typelen);
2000  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
2001 
2002  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
2003  }
2004  }
2005  else v.reset();
2006  }
2007 
2008  static void saveData(std::ostream &os, int64 v)
2009  { UTwrite(os, &v); }
2010  static void saveData(std::ostream &os, bool v)
2011  { int64 iv = v; UTwrite(os, &iv); }
2012  static void saveData(std::ostream &os, fpreal64 v)
2013  { UTwrite<fpreal64>(os, &v); }
2014  static void saveData(std::ostream &os, UT_Vector2D v)
2015  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
2016  static void saveData(std::ostream &os, UT_Vector3D v)
2017  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
2018  UTwrite<fpreal64>(os, &v.z()); }
2019  static void saveData(std::ostream &os, UT_Vector4D v)
2020  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
2021  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
2022  static void saveData(std::ostream &os, UT_Matrix2D v)
2024  static void saveData(std::ostream &os, UT_Matrix3D v)
2026  static void saveData(std::ostream &os, UT_Matrix4D v)
2028  static void saveData(std::ostream &os, UT_StringHolder s)
2029  { UT_StringWrap(s).saveBinary(os); }
2030  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
2032  UT_OStringStream ostr;
2033  if (s) s->save(ostr);
2034  result = ostr.str();
2035  saveData(os, result);
2036  }
2037  static void saveData(std::ostream &os, PRM_DataItemHandle s)
2039  UT_OStringStream ostr;
2040  if (s)
2041  {
2042  ostr << s->getDataTypeToken();
2043  ostr << ":";
2044  s->saveBinary(ostr);
2045  }
2046  result = ostr.str();
2047  saveData(os, result);
2048  }
2049 
2050 
2051  void save(std::ostream &os) const
2052  {
2053  int32 v = version();
2054  UTwrite(os, &v);
2055  saveData(os, myUvattrib);
2056  saveData(os, myGrouptype);
2057  saveData(os, myGroup);
2058  saveData(os, myZeroungrouped);
2059  saveData(os, myInputmask);
2060  saveData(os, myInputmaskoverride);
2061  saveData(os, myInputmaskcurveattrib);
2062  saveData(os, myInputmaskattrib);
2063  saveData(os, myInputmasktexture);
2064  saveData(os, myVismasks);
2065  saveData(os, myOutattribtype);
2066  saveData(os, myOutattrib);
2067  saveData(os, myCreateprimgroup);
2068  saveData(os, myOutprimgroup);
2069  saveData(os, myCreateintattrib);
2070  saveData(os, myIntattrib);
2071  saveData(os, myIntattribvalue);
2072  saveData(os, myIntattribthresh);
2073  saveData(os, myUsenoisemask);
2074  saveData(os, myNoisemaskamount);
2075  saveData(os, myNoisemaskamountoverride);
2076  saveData(os, myNoisemaskamountcurveattrib);
2077  saveData(os, myNoisemaskamountattrib);
2078  saveData(os, myNoisemaskamounttexture);
2079  saveData(os, myNoisemaskfreq);
2080  saveData(os, myNoisemaskgain);
2081  saveData(os, myNoisemaskgainoverride);
2082  saveData(os, myNoisemaskgaincurveattrib);
2083  saveData(os, myNoisemaskgainattrib);
2084  saveData(os, myNoisemaskgaintexture);
2085  saveData(os, myNoisemaskbias);
2086  saveData(os, myNoisemaskbiasoverride);
2087  saveData(os, myNoisemaskbiascurveattrib);
2088  saveData(os, myNoisemaskbiasattrib);
2089  saveData(os, myNoisemaskbiastexture);
2090  saveData(os, myNoisemaskcenterone);
2091  saveData(os, myNoisemaskfractal);
2092  saveData(os, myNoisemaskoct);
2093  saveData(os, myNoisemasklac);
2094  saveData(os, myNoisemaskrough);
2095  saveData(os, myNoisemaskroughoverride);
2096  saveData(os, myNoisemaskroughcurveattrib);
2097  saveData(os, myNoisemaskroughattrib);
2098  saveData(os, myNoisemaskroughtexture);
2099  saveData(os, myUselengthmask);
2100  saveData(os, myLengthmode);
2101  saveData(os, myLengthref);
2102  saveData(os, myLengthrefoverride);
2103  saveData(os, myLengthrefcurveattrib);
2104  saveData(os, myLengthrefattrib);
2105  saveData(os, myLengthreftexture);
2106  saveData(os, myLengthfalloffrange);
2107  saveData(os, myLengthfalloffrangeoverride);
2108  saveData(os, myLengthfalloffrangecurveattrib);
2109  saveData(os, myLengthfalloffrangeattrib);
2110  saveData(os, myLengthfalloffrangetexture);
2111  saveData(os, myLengthfalloffdecay);
2112  saveData(os, myLengthfalloffdecayoverride);
2113  saveData(os, myLengthfalloffdecaycurveattrib);
2114  saveData(os, myLengthfalloffdecayattrib);
2115  saveData(os, myLengthfalloffdecaytexture);
2116  saveData(os, myLengthrangemin);
2117  saveData(os, myLengthrangemax);
2118  saveData(os, myLengthpresets);
2119  saveData(os, myLengthramp);
2120  saveData(os, myUseskincurvmask);
2121  saveData(os, mySkincurvconcavemax);
2122  saveData(os, mySkincurvconvexmax);
2123  saveData(os, mySkincurvesmoothstrength);
2124  saveData(os, mySkincurvpresets);
2125  saveData(os, mySkincurvramp);
2126  saveData(os, myUsegeomask);
2127  saveData(os, myGeovoxelsize);
2128  saveData(os, myGeointrange);
2129  saveData(os, myGeoextrange);
2130  saveData(os, myGeodepthramppresets);
2131  saveData(os, myGeodepthramp);
2132  saveData(os, myGeodoblur);
2133  saveData(os, myGeoblurradius);
2134  saveData(os, myGeobluriters);
2135  saveData(os, myUserandommask);
2136  saveData(os, myRandommaskcombine);
2137  saveData(os, myRandommaskseed);
2138  saveData(os, myRandommaskfrac);
2139  saveData(os, myRandommaskvar);
2140  saveData(os, myRandommaskvargain);
2141  saveData(os, myUsecurvemask);
2142  saveData(os, myCurvemaskabsrange);
2143  saveData(os, myCurvemaskrangemin);
2144  saveData(os, myCurvemaskrangemax);
2145  saveData(os, myCurvemaskeffectpos);
2146  saveData(os, myCurvemaskfalloff);
2147  saveData(os, myCurvemaskwidth);
2148  saveData(os, myCurvemaskramp);
2149  saveData(os, myUseskinlookupattribs);
2150 
2151  }
2152 
2153  bool load(UT_IStream &is)
2154  {
2155  int32 v;
2156  is.bread(&v, 1);
2157  if (version() != v)
2158  {
2159  // Fail incompatible versions
2160  return false;
2161  }
2162  loadData(is, myUvattrib);
2163  loadData(is, myGrouptype);
2164  loadData(is, myGroup);
2165  loadData(is, myZeroungrouped);
2166  loadData(is, myInputmask);
2167  loadData(is, myInputmaskoverride);
2168  loadData(is, myInputmaskcurveattrib);
2169  loadData(is, myInputmaskattrib);
2170  loadData(is, myInputmasktexture);
2171  loadData(is, myVismasks);
2172  loadData(is, myOutattribtype);
2173  loadData(is, myOutattrib);
2174  loadData(is, myCreateprimgroup);
2175  loadData(is, myOutprimgroup);
2176  loadData(is, myCreateintattrib);
2177  loadData(is, myIntattrib);
2178  loadData(is, myIntattribvalue);
2179  loadData(is, myIntattribthresh);
2180  loadData(is, myUsenoisemask);
2181  loadData(is, myNoisemaskamount);
2182  loadData(is, myNoisemaskamountoverride);
2183  loadData(is, myNoisemaskamountcurveattrib);
2184  loadData(is, myNoisemaskamountattrib);
2185  loadData(is, myNoisemaskamounttexture);
2186  loadData(is, myNoisemaskfreq);
2187  loadData(is, myNoisemaskgain);
2188  loadData(is, myNoisemaskgainoverride);
2189  loadData(is, myNoisemaskgaincurveattrib);
2190  loadData(is, myNoisemaskgainattrib);
2191  loadData(is, myNoisemaskgaintexture);
2192  loadData(is, myNoisemaskbias);
2193  loadData(is, myNoisemaskbiasoverride);
2194  loadData(is, myNoisemaskbiascurveattrib);
2195  loadData(is, myNoisemaskbiasattrib);
2196  loadData(is, myNoisemaskbiastexture);
2197  loadData(is, myNoisemaskcenterone);
2198  loadData(is, myNoisemaskfractal);
2199  loadData(is, myNoisemaskoct);
2200  loadData(is, myNoisemasklac);
2201  loadData(is, myNoisemaskrough);
2202  loadData(is, myNoisemaskroughoverride);
2203  loadData(is, myNoisemaskroughcurveattrib);
2204  loadData(is, myNoisemaskroughattrib);
2205  loadData(is, myNoisemaskroughtexture);
2206  loadData(is, myUselengthmask);
2207  loadData(is, myLengthmode);
2208  loadData(is, myLengthref);
2209  loadData(is, myLengthrefoverride);
2210  loadData(is, myLengthrefcurveattrib);
2211  loadData(is, myLengthrefattrib);
2212  loadData(is, myLengthreftexture);
2213  loadData(is, myLengthfalloffrange);
2214  loadData(is, myLengthfalloffrangeoverride);
2215  loadData(is, myLengthfalloffrangecurveattrib);
2216  loadData(is, myLengthfalloffrangeattrib);
2217  loadData(is, myLengthfalloffrangetexture);
2218  loadData(is, myLengthfalloffdecay);
2219  loadData(is, myLengthfalloffdecayoverride);
2220  loadData(is, myLengthfalloffdecaycurveattrib);
2221  loadData(is, myLengthfalloffdecayattrib);
2222  loadData(is, myLengthfalloffdecaytexture);
2223  loadData(is, myLengthrangemin);
2224  loadData(is, myLengthrangemax);
2225  loadData(is, myLengthpresets);
2226  loadData(is, myLengthramp);
2227  loadData(is, myUseskincurvmask);
2228  loadData(is, mySkincurvconcavemax);
2229  loadData(is, mySkincurvconvexmax);
2230  loadData(is, mySkincurvesmoothstrength);
2231  loadData(is, mySkincurvpresets);
2232  loadData(is, mySkincurvramp);
2233  loadData(is, myUsegeomask);
2234  loadData(is, myGeovoxelsize);
2235  loadData(is, myGeointrange);
2236  loadData(is, myGeoextrange);
2237  loadData(is, myGeodepthramppresets);
2238  loadData(is, myGeodepthramp);
2239  loadData(is, myGeodoblur);
2240  loadData(is, myGeoblurradius);
2241  loadData(is, myGeobluriters);
2242  loadData(is, myUserandommask);
2243  loadData(is, myRandommaskcombine);
2244  loadData(is, myRandommaskseed);
2245  loadData(is, myRandommaskfrac);
2246  loadData(is, myRandommaskvar);
2247  loadData(is, myRandommaskvargain);
2248  loadData(is, myUsecurvemask);
2249  loadData(is, myCurvemaskabsrange);
2250  loadData(is, myCurvemaskrangemin);
2251  loadData(is, myCurvemaskrangemax);
2252  loadData(is, myCurvemaskeffectpos);
2253  loadData(is, myCurvemaskfalloff);
2254  loadData(is, myCurvemaskwidth);
2255  loadData(is, myCurvemaskramp);
2256  loadData(is, myUseskinlookupattribs);
2257 
2258  return true;
2259  }
2260 
2261  const UT_StringHolder & getUvattrib() const { return myUvattrib; }
2262  void setUvattrib(const UT_StringHolder & val) { myUvattrib = val; }
2264  {
2265  SOP_Node *thissop = cookparms.getNode();
2266  if (!thissop) return getUvattrib();
2268  OP_Utils::evalOpParm(result, thissop, "uvattrib", cookparms.getCookTime(), 0);
2269  return result;
2270  }
2271  Grouptype getGrouptype() const { return Grouptype(myGrouptype); }
2272  void setGrouptype(Grouptype val) { myGrouptype = int64(val); }
2274  {
2275  SOP_Node *thissop = cookparms.getNode();
2276  if (!thissop) return getGrouptype();
2277  int64 result;
2278  OP_Utils::evalOpParm(result, thissop, "grouptype", cookparms.getCookTime(), 0);
2279  return Grouptype(result);
2280  }
2281  const UT_StringHolder & getGroup() const { return myGroup; }
2282  void setGroup(const UT_StringHolder & val) { myGroup = val; }
2284  {
2285  SOP_Node *thissop = cookparms.getNode();
2286  if (!thissop) return getGroup();
2288  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
2289  return result;
2290  }
2291  bool getZeroungrouped() const { return myZeroungrouped; }
2292  void setZeroungrouped(bool val) { myZeroungrouped = val; }
2293  bool opZeroungrouped(const SOP_NodeVerb::CookParms &cookparms) const
2294  {
2295  SOP_Node *thissop = cookparms.getNode();
2296  if (!thissop) return getZeroungrouped();
2297  bool result;
2298  OP_Utils::evalOpParm(result, thissop, "zeroungrouped", cookparms.getCookTime(), 0);
2299  return result;
2300  }
2301  fpreal64 getInputmask() const { return myInputmask; }
2302  void setInputmask(fpreal64 val) { myInputmask = val; }
2304  {
2305  SOP_Node *thissop = cookparms.getNode();
2306  if (!thissop) return getInputmask();
2307  fpreal64 result;
2308  OP_Utils::evalOpParm(result, thissop, "inputmask", cookparms.getCookTime(), 0);
2309  return result;
2310  }
2311  Inputmaskoverride getInputmaskoverride() const { return Inputmaskoverride(myInputmaskoverride); }
2312  void setInputmaskoverride(Inputmaskoverride val) { myInputmaskoverride = int64(val); }
2314  {
2315  SOP_Node *thissop = cookparms.getNode();
2316  if (!thissop) return getInputmaskoverride();
2317  int64 result;
2318  OP_Utils::evalOpParm(result, thissop, "inputmaskoverride", cookparms.getCookTime(), 0);
2319  return Inputmaskoverride(result);
2320  }
2321  const UT_StringHolder & getInputmaskcurveattrib() const { return myInputmaskcurveattrib; }
2322  void setInputmaskcurveattrib(const UT_StringHolder & val) { myInputmaskcurveattrib = val; }
2324  {
2325  SOP_Node *thissop = cookparms.getNode();
2326  if (!thissop) return getInputmaskcurveattrib();
2328  OP_Utils::evalOpParm(result, thissop, "inputmaskcurveattrib", cookparms.getCookTime(), 0);
2329  return result;
2330  }
2331  const UT_StringHolder & getInputmaskattrib() const { return myInputmaskattrib; }
2332  void setInputmaskattrib(const UT_StringHolder & val) { myInputmaskattrib = val; }
2334  {
2335  SOP_Node *thissop = cookparms.getNode();
2336  if (!thissop) return getInputmaskattrib();
2338  OP_Utils::evalOpParm(result, thissop, "inputmaskattrib", cookparms.getCookTime(), 0);
2339  return result;
2340  }
2341  const UT_StringHolder & getInputmasktexture() const { return myInputmasktexture; }
2342  void setInputmasktexture(const UT_StringHolder & val) { myInputmasktexture = val; }
2344  {
2345  SOP_Node *thissop = cookparms.getNode();
2346  if (!thissop) return getInputmasktexture();
2348  OP_Utils::evalOpParm(result, thissop, "inputmasktexture", cookparms.getCookTime(), 0);
2349  return result;
2350  }
2351  bool getVismasks() const { return myVismasks; }
2352  void setVismasks(bool val) { myVismasks = val; }
2353  bool opVismasks(const SOP_NodeVerb::CookParms &cookparms) const
2354  {
2355  SOP_Node *thissop = cookparms.getNode();
2356  if (!thissop) return getVismasks();
2357  bool result;
2358  OP_Utils::evalOpParm(result, thissop, "vismasks", cookparms.getCookTime(), 0);
2359  return result;
2360  }
2361  Outattribtype getOutattribtype() const { return Outattribtype(myOutattribtype); }
2362  void setOutattribtype(Outattribtype val) { myOutattribtype = int64(val); }
2364  {
2365  SOP_Node *thissop = cookparms.getNode();
2366  if (!thissop) return getOutattribtype();
2367  int64 result;
2368  OP_Utils::evalOpParm(result, thissop, "outattribtype", cookparms.getCookTime(), 0);
2369  return Outattribtype(result);
2370  }
2371  const UT_StringHolder & getOutattrib() const { return myOutattrib; }
2372  void setOutattrib(const UT_StringHolder & val) { myOutattrib = val; }
2374  {
2375  SOP_Node *thissop = cookparms.getNode();
2376  if (!thissop) return getOutattrib();
2378  OP_Utils::evalOpParm(result, thissop, "outattrib", cookparms.getCookTime(), 0);
2379  return result;
2380  }
2381  bool getCreateprimgroup() const { return myCreateprimgroup; }
2382  void setCreateprimgroup(bool val) { myCreateprimgroup = val; }
2383  bool opCreateprimgroup(const SOP_NodeVerb::CookParms &cookparms) const
2384  {
2385  SOP_Node *thissop = cookparms.getNode();
2386  if (!thissop) return getCreateprimgroup();
2387  bool result;
2388  OP_Utils::evalOpParm(result, thissop, "createprimgroup", cookparms.getCookTime(), 0);
2389  return result;
2390  }
2391  const UT_StringHolder & getOutprimgroup() const { return myOutprimgroup; }
2392  void setOutprimgroup(const UT_StringHolder & val) { myOutprimgroup = val; }
2394  {
2395  SOP_Node *thissop = cookparms.getNode();
2396  if (!thissop) return getOutprimgroup();
2398  OP_Utils::evalOpParm(result, thissop, "outprimgroup", cookparms.getCookTime(), 0);
2399  return result;
2400  }
2401  bool getCreateintattrib() const { return myCreateintattrib; }
2402  void setCreateintattrib(bool val) { myCreateintattrib = val; }
2403  bool opCreateintattrib(const SOP_NodeVerb::CookParms &cookparms) const
2404  {
2405  SOP_Node *thissop = cookparms.getNode();
2406  if (!thissop) return getCreateintattrib();
2407  bool result;
2408  OP_Utils::evalOpParm(result, thissop, "createintattrib", cookparms.getCookTime(), 0);
2409  return result;
2410  }
2411  const UT_StringHolder & getIntattrib() const { return myIntattrib; }
2412  void setIntattrib(const UT_StringHolder & val) { myIntattrib = val; }
2414  {
2415  SOP_Node *thissop = cookparms.getNode();
2416  if (!thissop) return getIntattrib();
2418  OP_Utils::evalOpParm(result, thissop, "intattrib", cookparms.getCookTime(), 0);
2419  return result;
2420  }
2421  int64 getIntattribvalue() const { return myIntattribvalue; }
2422  void setIntattribvalue(int64 val) { myIntattribvalue = val; }
2424  {
2425  SOP_Node *thissop = cookparms.getNode();
2426  if (!thissop) return getIntattribvalue();
2427  int64 result;
2428  OP_Utils::evalOpParm(result, thissop, "intattribvalue", cookparms.getCookTime(), 0);
2429  return result;
2430  }
2431  fpreal64 getIntattribthresh() const { return myIntattribthresh; }
2432  void setIntattribthresh(fpreal64 val) { myIntattribthresh = val; }
2434  {
2435  SOP_Node *thissop = cookparms.getNode();
2436  if (!thissop) return getIntattribthresh();
2437  fpreal64 result;
2438  OP_Utils::evalOpParm(result, thissop, "intattribthresh", cookparms.getCookTime(), 0);
2439  return result;
2440  }
2441  bool getUsenoisemask() const { return myUsenoisemask; }
2442  void setUsenoisemask(bool val) { myUsenoisemask = val; }
2443  bool opUsenoisemask(const SOP_NodeVerb::CookParms &cookparms) const
2444  {
2445  SOP_Node *thissop = cookparms.getNode();
2446  if (!thissop) return getUsenoisemask();
2447  bool result;
2448  OP_Utils::evalOpParm(result, thissop, "usenoisemask", cookparms.getCookTime(), 0);
2449  return result;
2450  }
2451  fpreal64 getNoisemaskamount() const { return myNoisemaskamount; }
2452  void setNoisemaskamount(fpreal64 val) { myNoisemaskamount = val; }
2454  {
2455  SOP_Node *thissop = cookparms.getNode();
2456  if (!thissop) return getNoisemaskamount();
2457  fpreal64 result;
2458  OP_Utils::evalOpParm(result, thissop, "noisemaskamount", cookparms.getCookTime(), 0);
2459  return result;
2460  }
2461  Noisemaskamountoverride getNoisemaskamountoverride() const { return Noisemaskamountoverride(myNoisemaskamountoverride); }
2462  void setNoisemaskamountoverride(Noisemaskamountoverride val) { myNoisemaskamountoverride = int64(val); }
2464  {
2465  SOP_Node *thissop = cookparms.getNode();
2466  if (!thissop) return getNoisemaskamountoverride();
2467  int64 result;
2468  OP_Utils::evalOpParm(result, thissop, "noisemaskamountoverride", cookparms.getCookTime(), 0);
2469  return Noisemaskamountoverride(result);
2470  }
2471  const UT_StringHolder & getNoisemaskamountcurveattrib() const { return myNoisemaskamountcurveattrib; }
2472  void setNoisemaskamountcurveattrib(const UT_StringHolder & val) { myNoisemaskamountcurveattrib = val; }
2474  {
2475  SOP_Node *thissop = cookparms.getNode();
2476  if (!thissop) return getNoisemaskamountcurveattrib();
2478  OP_Utils::evalOpParm(result, thissop, "noisemaskamountcurveattrib", cookparms.getCookTime(), 0);
2479  return result;
2480  }
2481  const UT_StringHolder & getNoisemaskamountattrib() const { return myNoisemaskamountattrib; }
2482  void setNoisemaskamountattrib(const UT_StringHolder & val) { myNoisemaskamountattrib = val; }
2484  {
2485  SOP_Node *thissop = cookparms.getNode();
2486  if (!thissop) return getNoisemaskamountattrib();
2488  OP_Utils::evalOpParm(result, thissop, "noisemaskamountattrib", cookparms.getCookTime(), 0);
2489  return result;
2490  }
2491  const UT_StringHolder & getNoisemaskamounttexture() const { return myNoisemaskamounttexture; }
2492  void setNoisemaskamounttexture(const UT_StringHolder & val) { myNoisemaskamounttexture = val; }
2494  {
2495  SOP_Node *thissop = cookparms.getNode();
2496  if (!thissop) return getNoisemaskamounttexture();
2498  OP_Utils::evalOpParm(result, thissop, "noisemaskamounttexture", cookparms.getCookTime(), 0);
2499  return result;
2500  }
2501  fpreal64 getNoisemaskfreq() const { return myNoisemaskfreq; }
2502  void setNoisemaskfreq(fpreal64 val) { myNoisemaskfreq = val; }
2504  {
2505  SOP_Node *thissop = cookparms.getNode();
2506  if (!thissop) return getNoisemaskfreq();
2507  fpreal64 result;
2508  OP_Utils::evalOpParm(result, thissop, "noisemaskfreq", cookparms.getCookTime(), 0);
2509  return result;
2510  }
2511  fpreal64 getNoisemaskgain() const { return myNoisemaskgain; }
2512  void setNoisemaskgain(fpreal64 val) { myNoisemaskgain = val; }
2514  {
2515  SOP_Node *thissop = cookparms.getNode();
2516  if (!thissop) return getNoisemaskgain();
2517  fpreal64 result;
2518  OP_Utils::evalOpParm(result, thissop, "noisemaskgain", cookparms.getCookTime(), 0);
2519  return result;
2520  }
2521  Noisemaskgainoverride getNoisemaskgainoverride() const { return Noisemaskgainoverride(myNoisemaskgainoverride); }
2522  void setNoisemaskgainoverride(Noisemaskgainoverride val) { myNoisemaskgainoverride = int64(val); }
2524  {
2525  SOP_Node *thissop = cookparms.getNode();
2526  if (!thissop) return getNoisemaskgainoverride();
2527  int64 result;
2528  OP_Utils::evalOpParm(result, thissop, "noisemaskgainoverride", cookparms.getCookTime(), 0);
2529  return Noisemaskgainoverride(result);
2530  }
2531  const UT_StringHolder & getNoisemaskgaincurveattrib() const { return myNoisemaskgaincurveattrib; }
2532  void setNoisemaskgaincurveattrib(const UT_StringHolder & val) { myNoisemaskgaincurveattrib = val; }
2534  {
2535  SOP_Node *thissop = cookparms.getNode();
2536  if (!thissop) return getNoisemaskgaincurveattrib();
2538  OP_Utils::evalOpParm(result, thissop, "noisemaskgaincurveattrib", cookparms.getCookTime(), 0);
2539  return result;
2540  }
2541  const UT_StringHolder & getNoisemaskgainattrib() const { return myNoisemaskgainattrib; }
2542  void setNoisemaskgainattrib(const UT_StringHolder & val) { myNoisemaskgainattrib = val; }
2544  {
2545  SOP_Node *thissop = cookparms.getNode();
2546  if (!thissop) return getNoisemaskgainattrib();
2548  OP_Utils::evalOpParm(result, thissop, "noisemaskgainattrib", cookparms.getCookTime(), 0);
2549  return result;
2550  }
2551  const UT_StringHolder & getNoisemaskgaintexture() const { return myNoisemaskgaintexture; }
2552  void setNoisemaskgaintexture(const UT_StringHolder & val) { myNoisemaskgaintexture = val; }
2554  {
2555  SOP_Node *thissop = cookparms.getNode();
2556  if (!thissop) return getNoisemaskgaintexture();
2558  OP_Utils::evalOpParm(result, thissop, "noisemaskgaintexture", cookparms.getCookTime(), 0);
2559  return result;
2560  }
2561  fpreal64 getNoisemaskbias() const { return myNoisemaskbias; }
2562  void setNoisemaskbias(fpreal64 val) { myNoisemaskbias = val; }
2564  {
2565  SOP_Node *thissop = cookparms.getNode();
2566  if (!thissop) return getNoisemaskbias();
2567  fpreal64 result;
2568  OP_Utils::evalOpParm(result, thissop, "noisemaskbias", cookparms.getCookTime(), 0);
2569  return result;
2570  }
2571  Noisemaskbiasoverride getNoisemaskbiasoverride() const { return Noisemaskbiasoverride(myNoisemaskbiasoverride); }
2572  void setNoisemaskbiasoverride(Noisemaskbiasoverride val) { myNoisemaskbiasoverride = int64(val); }
2574  {
2575  SOP_Node *thissop = cookparms.getNode();
2576  if (!thissop) return getNoisemaskbiasoverride();
2577  int64 result;
2578  OP_Utils::evalOpParm(result, thissop, "noisemaskbiasoverride", cookparms.getCookTime(), 0);
2579  return Noisemaskbiasoverride(result);
2580  }
2581  const UT_StringHolder & getNoisemaskbiascurveattrib() const { return myNoisemaskbiascurveattrib; }
2582  void setNoisemaskbiascurveattrib(const UT_StringHolder & val) { myNoisemaskbiascurveattrib = val; }
2584  {
2585  SOP_Node *thissop = cookparms.getNode();
2586  if (!thissop) return getNoisemaskbiascurveattrib();
2588  OP_Utils::evalOpParm(result, thissop, "noisemaskbiascurveattrib", cookparms.getCookTime(), 0);
2589  return result;
2590  }
2591  const UT_StringHolder & getNoisemaskbiasattrib() const { return myNoisemaskbiasattrib; }
2592  void setNoisemaskbiasattrib(const UT_StringHolder & val) { myNoisemaskbiasattrib = val; }
2594  {
2595  SOP_Node *thissop = cookparms.getNode();
2596  if (!thissop) return getNoisemaskbiasattrib();
2598  OP_Utils::evalOpParm(result, thissop, "noisemaskbiasattrib", cookparms.getCookTime(), 0);
2599  return result;
2600  }
2601  const UT_StringHolder & getNoisemaskbiastexture() const { return myNoisemaskbiastexture; }
2602  void setNoisemaskbiastexture(const UT_StringHolder & val) { myNoisemaskbiastexture = val; }
2604  {
2605  SOP_Node *thissop = cookparms.getNode();
2606  if (!thissop) return getNoisemaskbiastexture();
2608  OP_Utils::evalOpParm(result, thissop, "noisemaskbiastexture", cookparms.getCookTime(), 0);
2609  return result;
2610  }
2611  bool getNoisemaskcenterone() const { return myNoisemaskcenterone; }
2612  void setNoisemaskcenterone(bool val) { myNoisemaskcenterone = val; }
2613  bool opNoisemaskcenterone(const SOP_NodeVerb::CookParms &cookparms) const
2614  {
2615  SOP_Node *thissop = cookparms.getNode();
2616  if (!thissop) return getNoisemaskcenterone();
2617  bool result;
2618  OP_Utils::evalOpParm(result, thissop, "noisemaskcenterone", cookparms.getCookTime(), 0);
2619  return result;
2620  }
2621  bool getNoisemaskfractal() const { return myNoisemaskfractal; }
2622  void setNoisemaskfractal(bool val) { myNoisemaskfractal = val; }
2623  bool opNoisemaskfractal(const SOP_NodeVerb::CookParms &cookparms) const
2624  {
2625  SOP_Node *thissop = cookparms.getNode();
2626  if (!thissop) return getNoisemaskfractal();
2627  bool result;
2628  OP_Utils::evalOpParm(result, thissop, "noisemaskfractal", cookparms.getCookTime(), 0);
2629  return result;
2630  }
2631  fpreal64 getNoisemaskoct() const { return myNoisemaskoct; }
2632  void setNoisemaskoct(fpreal64 val) { myNoisemaskoct = val; }
2634  {
2635  SOP_Node *thissop = cookparms.getNode();
2636  if (!thissop) return getNoisemaskoct();
2637  fpreal64 result;
2638  OP_Utils::evalOpParm(result, thissop, "noisemaskoct", cookparms.getCookTime(), 0);
2639  return result;
2640  }
2641  fpreal64 getNoisemasklac() const { return myNoisemasklac; }
2642  void setNoisemasklac(fpreal64 val) { myNoisemasklac = val; }
2644  {
2645  SOP_Node *thissop = cookparms.getNode();
2646  if (!thissop) return getNoisemasklac();
2647  fpreal64 result;
2648  OP_Utils::evalOpParm(result, thissop, "noisemasklac", cookparms.getCookTime(), 0);
2649  return result;
2650  }
2651  fpreal64 getNoisemaskrough() const { return myNoisemaskrough; }
2652  void setNoisemaskrough(fpreal64 val) { myNoisemaskrough = val; }
2654  {
2655  SOP_Node *thissop = cookparms.getNode();
2656  if (!thissop) return getNoisemaskrough();
2657  fpreal64 result;
2658  OP_Utils::evalOpParm(result, thissop, "noisemaskrough", cookparms.getCookTime(), 0);
2659  return result;
2660  }
2661  Noisemaskroughoverride getNoisemaskroughoverride() const { return Noisemaskroughoverride(myNoisemaskroughoverride); }
2662  void setNoisemaskroughoverride(Noisemaskroughoverride val) { myNoisemaskroughoverride = int64(val); }
2664  {
2665  SOP_Node *thissop = cookparms.getNode();
2666  if (!thissop) return getNoisemaskroughoverride();
2667  int64 result;
2668  OP_Utils::evalOpParm(result, thissop, "noisemaskroughoverride", cookparms.getCookTime(), 0);
2669  return Noisemaskroughoverride(result);
2670  }
2671  const UT_StringHolder & getNoisemaskroughcurveattrib() const { return myNoisemaskroughcurveattrib; }
2672  void setNoisemaskroughcurveattrib(const UT_StringHolder & val) { myNoisemaskroughcurveattrib = val; }
2674  {
2675  SOP_Node *thissop = cookparms.getNode();
2676  if (!thissop) return getNoisemaskroughcurveattrib();
2678  OP_Utils::evalOpParm(result, thissop, "noisemaskroughcurveattrib", cookparms.getCookTime(), 0);
2679  return result;
2680  }
2681  const UT_StringHolder & getNoisemaskroughattrib() const { return myNoisemaskroughattrib; }
2682  void setNoisemaskroughattrib(const UT_StringHolder & val) { myNoisemaskroughattrib = val; }
2684  {
2685  SOP_Node *thissop = cookparms.getNode();
2686  if (!thissop) return getNoisemaskroughattrib();
2688  OP_Utils::evalOpParm(result, thissop, "noisemaskroughattrib", cookparms.getCookTime(), 0);
2689  return result;
2690  }
2691  const UT_StringHolder & getNoisemaskroughtexture() const { return myNoisemaskroughtexture; }
2692  void setNoisemaskroughtexture(const UT_StringHolder & val) { myNoisemaskroughtexture = val; }
2694  {
2695  SOP_Node *thissop = cookparms.getNode();
2696  if (!thissop) return getNoisemaskroughtexture();
2698  OP_Utils::evalOpParm(result, thissop, "noisemaskroughtexture", cookparms.getCookTime(), 0);
2699  return result;
2700  }
2701  bool getUselengthmask() const { return myUselengthmask; }
2702  void setUselengthmask(bool val) { myUselengthmask = val; }
2703  bool opUselengthmask(const SOP_NodeVerb::CookParms &cookparms) const
2704  {
2705  SOP_Node *thissop = cookparms.getNode();
2706  if (!thissop) return getUselengthmask();
2707  bool result;
2708  OP_Utils::evalOpParm(result, thissop, "uselengthmask", cookparms.getCookTime(), 0);
2709  return result;
2710  }
2711  Lengthmode getLengthmode() const { return Lengthmode(myLengthmode); }
2712  void setLengthmode(Lengthmode val) { myLengthmode = int64(val); }
2714  {
2715  SOP_Node *thissop = cookparms.getNode();
2716  if (!thissop) return getLengthmode();
2717  int64 result;
2718  OP_Utils::evalOpParm(result, thissop, "lengthmode", cookparms.getCookTime(), 0);
2719  return Lengthmode(result);
2720  }
2721  fpreal64 getLengthref() const { return myLengthref; }
2722  void setLengthref(fpreal64 val) { myLengthref = val; }
2724  {
2725  SOP_Node *thissop = cookparms.getNode();
2726  if (!thissop) return getLengthref();
2727  fpreal64 result;
2728  OP_Utils::evalOpParm(result, thissop, "lengthref", cookparms.getCookTime(), 0);
2729  return result;
2730  }
2731  Lengthrefoverride getLengthrefoverride() const { return Lengthrefoverride(myLengthrefoverride); }
2732  void setLengthrefoverride(Lengthrefoverride val) { myLengthrefoverride = int64(val); }
2734  {
2735  SOP_Node *thissop = cookparms.getNode();
2736  if (!thissop) return getLengthrefoverride();
2737  int64 result;
2738  OP_Utils::evalOpParm(result, thissop, "lengthrefoverride", cookparms.getCookTime(), 0);
2739  return Lengthrefoverride(result);
2740  }
2741  const UT_StringHolder & getLengthrefcurveattrib() const { return myLengthrefcurveattrib; }
2742  void setLengthrefcurveattrib(const UT_StringHolder & val) { myLengthrefcurveattrib = val; }
2744  {
2745  SOP_Node *thissop = cookparms.getNode();
2746  if (!thissop) return getLengthrefcurveattrib();
2748  OP_Utils::evalOpParm(result, thissop, "lengthrefcurveattrib", cookparms.getCookTime(), 0);
2749  return result;
2750  }
2751  const UT_StringHolder & getLengthrefattrib() const { return myLengthrefattrib; }
2752  void setLengthrefattrib(const UT_StringHolder & val) { myLengthrefattrib = val; }
2754  {
2755  SOP_Node *thissop = cookparms.getNode();
2756  if (!thissop) return getLengthrefattrib();
2758  OP_Utils::evalOpParm(result, thissop, "lengthrefattrib", cookparms.getCookTime(), 0);
2759  return result;
2760  }
2761  const UT_StringHolder & getLengthreftexture() const { return myLengthreftexture; }
2762  void setLengthreftexture(const UT_StringHolder & val) { myLengthreftexture = val; }
2764  {
2765  SOP_Node *thissop = cookparms.getNode();
2766  if (!thissop) return getLengthreftexture();
2768  OP_Utils::evalOpParm(result, thissop, "lengthreftexture", cookparms.getCookTime(), 0);
2769  return result;
2770  }
2771  fpreal64 getLengthfalloffrange() const { return myLengthfalloffrange; }
2772  void setLengthfalloffrange(fpreal64 val) { myLengthfalloffrange = val; }
2774  {
2775  SOP_Node *thissop = cookparms.getNode();
2776  if (!thissop) return getLengthfalloffrange();
2777  fpreal64 result;
2778  OP_Utils::evalOpParm(result, thissop, "lengthfalloffrange", cookparms.getCookTime(), 0);
2779  return result;
2780  }
2782  void setLengthfalloffrangeoverride(Lengthfalloffrangeoverride val) { myLengthfalloffrangeoverride = int64(val); }
2784  {
2785  SOP_Node *thissop = cookparms.getNode();
2786  if (!thissop) return getLengthfalloffrangeoverride();
2787  int64 result;
2788  OP_Utils::evalOpParm(result, thissop, "lengthfalloffrangeoverride", cookparms.getCookTime(), 0);
2789  return Lengthfalloffrangeoverride(result);
2790  }
2791  const UT_StringHolder & getLengthfalloffrangecurveattrib() const { return myLengthfalloffrangecurveattrib; }
2792  void setLengthfalloffrangecurveattrib(const UT_StringHolder & val) { myLengthfalloffrangecurveattrib = val; }
2794  {
2795  SOP_Node *thissop = cookparms.getNode();
2796  if (!thissop) return getLengthfalloffrangecurveattrib();
2798  OP_Utils::evalOpParm(result, thissop, "lengthfalloffrangecurveattrib", cookparms.getCookTime(), 0);
2799  return result;
2800  }
2801  const UT_StringHolder & getLengthfalloffrangeattrib() const { return myLengthfalloffrangeattrib; }
2802  void setLengthfalloffrangeattrib(const UT_StringHolder & val) { myLengthfalloffrangeattrib = val; }
2804  {
2805  SOP_Node *thissop = cookparms.getNode();
2806  if (!thissop) return getLengthfalloffrangeattrib();
2808  OP_Utils::evalOpParm(result, thissop, "lengthfalloffrangeattrib", cookparms.getCookTime(), 0);
2809  return result;
2810  }
2811  const UT_StringHolder & getLengthfalloffrangetexture() const { return myLengthfalloffrangetexture; }
2812  void setLengthfalloffrangetexture(const UT_StringHolder & val) { myLengthfalloffrangetexture = val; }
2814  {
2815  SOP_Node *thissop = cookparms.getNode();
2816  if (!thissop) return getLengthfalloffrangetexture();
2818  OP_Utils::evalOpParm(result, thissop, "lengthfalloffrangetexture", cookparms.getCookTime(), 0);
2819  return result;
2820  }
2821  fpreal64 getLengthfalloffdecay() const { return myLengthfalloffdecay; }
2822  void setLengthfalloffdecay(fpreal64 val) { myLengthfalloffdecay = val; }
2824  {
2825  SOP_Node *thissop = cookparms.getNode();
2826  if (!thissop) return getLengthfalloffdecay();
2827  fpreal64 result;
2828  OP_Utils::evalOpParm(result, thissop, "lengthfalloffdecay", cookparms.getCookTime(), 0);
2829  return result;
2830  }
2832  void setLengthfalloffdecayoverride(Lengthfalloffdecayoverride val) { myLengthfalloffdecayoverride = int64(val); }
2834  {
2835  SOP_Node *thissop = cookparms.getNode();
2836  if (!thissop) return getLengthfalloffdecayoverride();
2837  int64 result;
2838  OP_Utils::evalOpParm(result, thissop, "lengthfalloffdecayoverride", cookparms.getCookTime(), 0);
2839  return Lengthfalloffdecayoverride(result);
2840  }
2841  const UT_StringHolder & getLengthfalloffdecaycurveattrib() const { return myLengthfalloffdecaycurveattrib; }
2842  void setLengthfalloffdecaycurveattrib(const UT_StringHolder & val) { myLengthfalloffdecaycurveattrib = val; }
2844  {
2845  SOP_Node *thissop = cookparms.getNode();
2846  if (!thissop) return getLengthfalloffdecaycurveattrib();
2848  OP_Utils::evalOpParm(result, thissop, "lengthfalloffdecaycurveattrib", cookparms.getCookTime(), 0);
2849  return result;
2850  }
2851  const UT_StringHolder & getLengthfalloffdecayattrib() const { return myLengthfalloffdecayattrib; }
2852  void setLengthfalloffdecayattrib(const UT_StringHolder & val) { myLengthfalloffdecayattrib = val; }
2854  {
2855  SOP_Node *thissop = cookparms.getNode();
2856  if (!thissop) return getLengthfalloffdecayattrib();
2858  OP_Utils::evalOpParm(result, thissop, "lengthfalloffdecayattrib", cookparms.getCookTime(), 0);
2859  return result;
2860  }
2861  const UT_StringHolder & getLengthfalloffdecaytexture() const { return myLengthfalloffdecaytexture; }
2862  void setLengthfalloffdecaytexture(const UT_StringHolder & val) { myLengthfalloffdecaytexture = val; }
2864  {
2865  SOP_Node *thissop = cookparms.getNode();
2866  if (!thissop) return getLengthfalloffdecaytexture();
2868  OP_Utils::evalOpParm(result, thissop, "lengthfalloffdecaytexture", cookparms.getCookTime(), 0);
2869  return result;
2870  }
2871  fpreal64 getLengthrangemin() const { return myLengthrangemin; }
2872  void setLengthrangemin(fpreal64 val) { myLengthrangemin = val; }
2874  {
2875  SOP_Node *thissop = cookparms.getNode();
2876  if (!thissop) return getLengthrangemin();
2877  fpreal64 result;
2878  OP_Utils::evalOpParm(result, thissop, "lengthrangemin", cookparms.getCookTime(), 0);
2879  return result;
2880  }
2881  fpreal64 getLengthrangemax() const { return myLengthrangemax; }
2882  void setLengthrangemax(fpreal64 val) { myLengthrangemax = val; }
2884  {
2885  SOP_Node *thissop = cookparms.getNode();
2886  if (!thissop) return getLengthrangemax();
2887  fpreal64 result;
2888  OP_Utils::evalOpParm(result, thissop, "lengthrangemax", cookparms.getCookTime(), 0);
2889  return result;
2890  }
2891  Lengthpresets getLengthpresets() const { return Lengthpresets(myLengthpresets); }
2892  void setLengthpresets(Lengthpresets val) { myLengthpresets = int64(val); }
2894  {
2895  SOP_Node *thissop = cookparms.getNode();
2896  if (!thissop) return getLengthpresets();
2897  int64 result;
2898  OP_Utils::evalOpParm(result, thissop, "lengthpresets", cookparms.getCookTime(), 0);
2899  return Lengthpresets(result);
2900  }
2901  UT_SharedPtr<UT_Ramp> getLengthramp() const { return myLengthramp; }
2902  void setLengthramp(UT_SharedPtr<UT_Ramp> val) { myLengthramp = val; }
2904  {
2905  SOP_Node *thissop = cookparms.getNode();
2906  if (!thissop) return getLengthramp();
2908  OP_Utils::evalOpParm(result, thissop, "lengthramp", cookparms.getCookTime(), 0);
2909  return result;
2910  }
2911  bool getUseskincurvmask() const { return myUseskincurvmask; }
2912  void setUseskincurvmask(bool val) { myUseskincurvmask = val; }
2913  bool opUseskincurvmask(const SOP_NodeVerb::CookParms &cookparms) const
2914  {
2915  SOP_Node *thissop = cookparms.getNode();
2916  if (!thissop) return getUseskincurvmask();
2917  bool result;
2918  OP_Utils::evalOpParm(result, thissop, "useskincurvmask", cookparms.getCookTime(), 0);
2919  return result;
2920  }
2921  fpreal64 getSkincurvconcavemax() const { return mySkincurvconcavemax; }
2922  void setSkincurvconcavemax(fpreal64 val) { mySkincurvconcavemax = val; }
2924  {
2925  SOP_Node *thissop = cookparms.getNode();
2926  if (!thissop) return getSkincurvconcavemax();
2927  fpreal64 result;
2928  OP_Utils::evalOpParm(result, thissop, "skincurvconcavemax", cookparms.getCookTime(), 0);
2929  return result;
2930  }
2931  fpreal64 getSkincurvconvexmax() const { return mySkincurvconvexmax; }
2932  void setSkincurvconvexmax(fpreal64 val) { mySkincurvconvexmax = val; }
2934  {
2935  SOP_Node *thissop = cookparms.getNode();
2936  if (!thissop) return getSkincurvconvexmax();
2937  fpreal64 result;
2938  OP_Utils::evalOpParm(result, thissop, "skincurvconvexmax", cookparms.getCookTime(), 0);
2939  return result;
2940  }
2941  fpreal64 getSkincurvesmoothstrength() const { return mySkincurvesmoothstrength; }
2942  void setSkincurvesmoothstrength(fpreal64 val) { mySkincurvesmoothstrength = val; }
2944  {
2945  SOP_Node *thissop = cookparms.getNode();
2946  if (!thissop) return getSkincurvesmoothstrength();
2947  fpreal64 result;
2948  OP_Utils::evalOpParm(result, thissop, "skincurvesmoothstrength", cookparms.getCookTime(), 0);
2949  return result;
2950  }
2951  Skincurvpresets getSkincurvpresets() const { return Skincurvpresets(mySkincurvpresets); }
2952  void setSkincurvpresets(Skincurvpresets val) { mySkincurvpresets = int64(val); }
2954  {
2955  SOP_Node *thissop = cookparms.getNode();
2956  if (!thissop) return getSkincurvpresets();
2957  int64 result;
2958  OP_Utils::evalOpParm(result, thissop, "skincurvpresets", cookparms.getCookTime(), 0);
2959  return Skincurvpresets(result);
2960  }
2961  UT_SharedPtr<UT_Ramp> getSkincurvramp() const { return mySkincurvramp; }
2962  void setSkincurvramp(UT_SharedPtr<UT_Ramp> val) { mySkincurvramp = val; }
2964  {
2965  SOP_Node *thissop = cookparms.getNode();
2966  if (!thissop) return getSkincurvramp();
2968  OP_Utils::evalOpParm(result, thissop, "skincurvramp", cookparms.getCookTime(), 0);
2969  return result;
2970  }
2971  bool getUsegeomask() const { return myUsegeomask; }
2972  void setUsegeomask(bool val) { myUsegeomask = val; }
2973  bool opUsegeomask(const SOP_NodeVerb::CookParms &cookparms) const
2974  {
2975  SOP_Node *thissop = cookparms.getNode();
2976  if (!thissop) return getUsegeomask();
2977  bool result;
2978  OP_Utils::evalOpParm(result, thissop, "usegeomask", cookparms.getCookTime(), 0);
2979  return result;
2980  }
2981  fpreal64 getGeovoxelsize() const { return myGeovoxelsize; }
2982  void setGeovoxelsize(fpreal64 val) { myGeovoxelsize = val; }
2984  {
2985  SOP_Node *thissop = cookparms.getNode();
2986  if (!thissop) return getGeovoxelsize();
2987  fpreal64 result;
2988  OP_Utils::evalOpParm(result, thissop, "geovoxelsize", cookparms.getCookTime(), 0);
2989  return result;
2990  }
2991  fpreal64 getGeointrange() const { return myGeointrange; }
2992  void setGeointrange(fpreal64 val) { myGeointrange = val; }
2994  {
2995  SOP_Node *thissop = cookparms.getNode();
2996  if (!thissop) return getGeointrange();
2997  fpreal64 result;
2998  OP_Utils::evalOpParm(result, thissop, "geointrange", cookparms.getCookTime(), 0);
2999  return result;
3000  }
3001  fpreal64 getGeoextrange() const { return myGeoextrange; }
3002  void setGeoextrange(fpreal64 val) { myGeoextrange = val; }
3004  {
3005  SOP_Node *thissop = cookparms.getNode();
3006  if (!thissop) return getGeoextrange();
3007  fpreal64 result;
3008  OP_Utils::evalOpParm(result, thissop, "geoextrange", cookparms.getCookTime(), 0);
3009  return result;
3010  }
3011  Geodepthramppresets getGeodepthramppresets() const { return Geodepthramppresets(myGeodepthramppresets); }
3012  void setGeodepthramppresets(Geodepthramppresets val) { myGeodepthramppresets = int64(val); }
3014  {
3015  SOP_Node *thissop = cookparms.getNode();
3016  if (!thissop) return getGeodepthramppresets();
3017  int64 result;
3018  OP_Utils::evalOpParm(result, thissop, "geodepthramppresets", cookparms.getCookTime(), 0);
3019  return Geodepthramppresets(result);
3020  }
3021  UT_SharedPtr<UT_Ramp> getGeodepthramp() const { return myGeodepthramp; }
3022  void setGeodepthramp(UT_SharedPtr<UT_Ramp> val) { myGeodepthramp = val; }
3024  {
3025  SOP_Node *thissop = cookparms.getNode();
3026  if (!thissop) return getGeodepthramp();
3028  OP_Utils::evalOpParm(result, thissop, "geodepthramp", cookparms.getCookTime(), 0);
3029  return result;
3030  }
3031  bool getGeodoblur() const { return myGeodoblur; }
3032  void setGeodoblur(bool val) { myGeodoblur = val; }
3033  bool opGeodoblur(const SOP_NodeVerb::CookParms &cookparms) const
3034  {
3035  SOP_Node *thissop = cookparms.getNode();
3036  if (!thissop) return getGeodoblur();
3037  bool result;
3038  OP_Utils::evalOpParm(result, thissop, "geodoblur", cookparms.getCookTime(), 0);
3039  return result;
3040  }
3041  fpreal64 getGeoblurradius() const { return myGeoblurradius; }
3042  void setGeoblurradius(fpreal64 val) { myGeoblurradius = val; }
3044  {
3045  SOP_Node *thissop = cookparms.getNode();
3046  if (!thissop) return getGeoblurradius();
3047  fpreal64 result;
3048  OP_Utils::evalOpParm(result, thissop, "geoblurradius", cookparms.getCookTime(), 0);
3049  return result;
3050  }
3051  int64 getGeobluriters() const { return myGeobluriters; }
3052  void setGeobluriters(int64 val) { myGeobluriters = val; }
3054  {
3055  SOP_Node *thissop = cookparms.getNode();
3056  if (!thissop) return getGeobluriters();
3057  int64 result;
3058  OP_Utils::evalOpParm(result, thissop, "geobluriters", cookparms.getCookTime(), 0);
3059  return result;
3060  }
3061  bool getUserandommask() const { return myUserandommask; }
3062  void setUserandommask(bool val) { myUserandommask = val; }
3063  bool opUserandommask(const SOP_NodeVerb::CookParms &cookparms) const
3064  {
3065  SOP_Node *thissop = cookparms.getNode();
3066  if (!thissop) return getUserandommask();
3067  bool result;
3068  OP_Utils::evalOpParm(result, thissop, "userandommask", cookparms.getCookTime(), 0);
3069  return result;
3070  }
3071  Randommaskcombine getRandommaskcombine() const { return Randommaskcombine(myRandommaskcombine); }
3072  void setRandommaskcombine(Randommaskcombine val) { myRandommaskcombine = int64(val); }
3074  {
3075  SOP_Node *thissop = cookparms.getNode();
3076  if (!thissop) return getRandommaskcombine();
3077  int64 result;
3078  OP_Utils::evalOpParm(result, thissop, "randommaskcombine", cookparms.getCookTime(), 0);
3079  return Randommaskcombine(result);
3080  }
3081  fpreal64 getRandommaskseed() const { return myRandommaskseed; }
3082  void setRandommaskseed(fpreal64 val) { myRandommaskseed = val; }
3084  {
3085  SOP_Node *thissop = cookparms.getNode();
3086  if (!thissop) return getRandommaskseed();
3087  fpreal64 result;
3088  OP_Utils::evalOpParm(result, thissop, "randommaskseed", cookparms.getCookTime(), 0);
3089  return result;
3090  }
3091  fpreal64 getRandommaskfrac() const { return myRandommaskfrac; }
3092  void setRandommaskfrac(fpreal64 val) { myRandommaskfrac = val; }
3094  {
3095  SOP_Node *thissop = cookparms.getNode();
3096  if (!thissop) return getRandommaskfrac();
3097  fpreal64 result;
3098  OP_Utils::evalOpParm(result, thissop, "randommaskfrac", cookparms.getCookTime(), 0);
3099  return result;
3100  }
3101  fpreal64 getRandommaskvar() const { return myRandommaskvar; }
3102  void setRandommaskvar(fpreal64 val) { myRandommaskvar = val; }
3104  {
3105  SOP_Node *thissop = cookparms.getNode();
3106  if (!thissop) return getRandommaskvar();
3107  fpreal64 result;
3108  OP_Utils::evalOpParm(result, thissop, "randommaskvar", cookparms.getCookTime(), 0);
3109  return result;
3110  }
3111  fpreal64 getRandommaskvargain() const { return myRandommaskvargain; }
3112  void setRandommaskvargain(fpreal64 val) { myRandommaskvargain = val; }
3114  {
3115  SOP_Node *thissop = cookparms.getNode();
3116  if (!thissop) return getRandommaskvargain();
3117  fpreal64 result;
3118  OP_Utils::evalOpParm(result, thissop, "randommaskvargain", cookparms.getCookTime(), 0);
3119  return result;
3120  }
3121  bool getUsecurvemask() const { return myUsecurvemask; }
3122  void setUsecurvemask(bool val) { myUsecurvemask = val; }
3123  bool opUsecurvemask(const SOP_NodeVerb::CookParms &cookparms) const
3124  {
3125  SOP_Node *thissop = cookparms.getNode();
3126  if (!thissop) return getUsecurvemask();
3127  bool result;
3128  OP_Utils::evalOpParm(result, thissop, "usecurvemask", cookparms.getCookTime(), 0);
3129  return result;
3130  }
3131  bool getCurvemaskabsrange() const { return myCurvemaskabsrange; }
3132  void setCurvemaskabsrange(bool val) { myCurvemaskabsrange = val; }
3133  bool opCurvemaskabsrange(const SOP_NodeVerb::CookParms &cookparms) const
3134  {
3135  SOP_Node *thissop = cookparms.getNode();
3136  if (!thissop) return getCurvemaskabsrange();
3137  bool result;
3138  OP_Utils::evalOpParm(result, thissop, "curvemaskabsrange", cookparms.getCookTime(), 0);
3139  return result;
3140  }
3141  fpreal64 getCurvemaskrangemin() const { return myCurvemaskrangemin; }
3142  void setCurvemaskrangemin(fpreal64 val) { myCurvemaskrangemin = val; }
3144  {
3145  SOP_Node *thissop = cookparms.getNode();
3146  if (!thissop) return getCurvemaskrangemin();
3147  fpreal64 result;
3148  OP_Utils::evalOpParm(result, thissop, "curvemaskrangemin", cookparms.getCookTime(), 0);
3149  return result;
3150  }
3151  fpreal64 getCurvemaskrangemax() const { return myCurvemaskrangemax; }
3152  void setCurvemaskrangemax(fpreal64 val) { myCurvemaskrangemax = val; }
3154  {
3155  SOP_Node *thissop = cookparms.getNode();
3156  if (!thissop) return getCurvemaskrangemax();
3157  fpreal64 result;
3158  OP_Utils::evalOpParm(result, thissop, "curvemaskrangemax", cookparms.getCookTime(), 0);
3159  return result;
3160  }
3161  fpreal64 getCurvemaskeffectpos() const { return myCurvemaskeffectpos; }
3162  void setCurvemaskeffectpos(fpreal64 val) { myCurvemaskeffectpos = val; }
3164  {
3165  SOP_Node *thissop = cookparms.getNode();
3166  if (!thissop) return getCurvemaskeffectpos();
3167  fpreal64 result;
3168  OP_Utils::evalOpParm(result, thissop, "curvemaskeffectpos", cookparms.getCookTime(), 0);
3169  return result;
3170  }
3171  fpreal64 getCurvemaskfalloff() const { return myCurvemaskfalloff; }
3172  void setCurvemaskfalloff(fpreal64 val) { myCurvemaskfalloff = val; }
3174  {
3175  SOP_Node *thissop = cookparms.getNode();
3176  if (!thissop) return getCurvemaskfalloff();
3177  fpreal64 result;
3178  OP_Utils::evalOpParm(result, thissop, "curvemaskfalloff", cookparms.getCookTime(), 0);
3179  return result;
3180  }
3181  fpreal64 getCurvemaskwidth() const { return myCurvemaskwidth; }
3182  void setCurvemaskwidth(fpreal64 val) { myCurvemaskwidth = val; }
3184  {
3185  SOP_Node *thissop = cookparms.getNode();
3186  if (!thissop) return getCurvemaskwidth();
3187  fpreal64 result;
3188  OP_Utils::evalOpParm(result, thissop, "curvemaskwidth", cookparms.getCookTime(), 0);
3189  return result;
3190  }
3191  UT_SharedPtr<UT_Ramp> getCurvemaskramp() const { return myCurvemaskramp; }
3192  void setCurvemaskramp(UT_SharedPtr<UT_Ramp> val) { myCurvemaskramp = val; }
3194  {
3195  SOP_Node *thissop = cookparms.getNode();
3196  if (!thissop) return getCurvemaskramp();
3198  OP_Utils::evalOpParm(result, thissop, "curvemaskramp", cookparms.getCookTime(), 0);
3199  return result;
3200  }
3201  bool getUseskinlookupattribs() const { return myUseskinlookupattribs; }
3202  void setUseskinlookupattribs(bool val) { myUseskinlookupattribs = val; }
3204  {
3205  SOP_Node *thissop = cookparms.getNode();
3206  if (!thissop) return getUseskinlookupattribs();
3207  bool result;
3208  OP_Utils::evalOpParm(result, thissop, "useskinlookupattribs", cookparms.getCookTime(), 0);
3209  return result;
3210  }
3211 
3212 private:
3213  UT_StringHolder myUvattrib;
3214  int64 myGrouptype;
3215  UT_StringHolder myGroup;
3216  bool myZeroungrouped;
3217  fpreal64 myInputmask;
3218  int64 myInputmaskoverride;
3219  UT_StringHolder myInputmaskcurveattrib;
3220  UT_StringHolder myInputmaskattrib;
3221  UT_StringHolder myInputmasktexture;
3222  bool myVismasks;
3223  int64 myOutattribtype;
3224  UT_StringHolder myOutattrib;
3225  bool myCreateprimgroup;
3226  UT_StringHolder myOutprimgroup;
3227  bool myCreateintattrib;
3228  UT_StringHolder myIntattrib;
3229  int64 myIntattribvalue;
3230  fpreal64 myIntattribthresh;
3231  bool myUsenoisemask;
3232  fpreal64 myNoisemaskamount;
3233  int64 myNoisemaskamountoverride;
3234  UT_StringHolder myNoisemaskamountcurveattrib;
3235  UT_StringHolder myNoisemaskamountattrib;
3236  UT_StringHolder myNoisemaskamounttexture;
3237  fpreal64 myNoisemaskfreq;
3238  fpreal64 myNoisemaskgain;
3239  int64 myNoisemaskgainoverride;
3240  UT_StringHolder myNoisemaskgaincurveattrib;
3241  UT_StringHolder myNoisemaskgainattrib;
3242  UT_StringHolder myNoisemaskgaintexture;
3243  fpreal64 myNoisemaskbias;
3244  int64 myNoisemaskbiasoverride;
3245  UT_StringHolder myNoisemaskbiascurveattrib;
3246  UT_StringHolder myNoisemaskbiasattrib;
3247  UT_StringHolder myNoisemaskbiastexture;
3248  bool myNoisemaskcenterone;
3249  bool myNoisemaskfractal;
3250  fpreal64 myNoisemaskoct;
3251  fpreal64 myNoisemasklac;
3252  fpreal64 myNoisemaskrough;
3253  int64 myNoisemaskroughoverride;
3254  UT_StringHolder myNoisemaskroughcurveattrib;
3255  UT_StringHolder myNoisemaskroughattrib;
3256  UT_StringHolder myNoisemaskroughtexture;
3257  bool myUselengthmask;
3258  int64 myLengthmode;
3259  fpreal64 myLengthref;
3260  int64 myLengthrefoverride;
3261  UT_StringHolder myLengthrefcurveattrib;
3262  UT_StringHolder myLengthrefattrib;
3263  UT_StringHolder myLengthreftexture;
3264  fpreal64 myLengthfalloffrange;
3265  int64 myLengthfalloffrangeoverride;
3266  UT_StringHolder myLengthfalloffrangecurveattrib;
3267  UT_StringHolder myLengthfalloffrangeattrib;
3268  UT_StringHolder myLengthfalloffrangetexture;
3269  fpreal64 myLengthfalloffdecay;
3270  int64 myLengthfalloffdecayoverride;
3271  UT_StringHolder myLengthfalloffdecaycurveattrib;
3272  UT_StringHolder myLengthfalloffdecayattrib;
3273  UT_StringHolder myLengthfalloffdecaytexture;
3274  fpreal64 myLengthrangemin;
3275  fpreal64 myLengthrangemax;
3276  int64 myLengthpresets;
3277  UT_SharedPtr<UT_Ramp> myLengthramp;
3278  bool myUseskincurvmask;
3279  fpreal64 mySkincurvconcavemax;
3280  fpreal64 mySkincurvconvexmax;
3281  fpreal64 mySkincurvesmoothstrength;
3282  int64 mySkincurvpresets;
3283  UT_SharedPtr<UT_Ramp> mySkincurvramp;
3284  bool myUsegeomask;
3285  fpreal64 myGeovoxelsize;
3286  fpreal64 myGeointrange;
3287  fpreal64 myGeoextrange;
3288  int64 myGeodepthramppresets;
3289  UT_SharedPtr<UT_Ramp> myGeodepthramp;
3290  bool myGeodoblur;
3291  fpreal64 myGeoblurradius;
3292  int64 myGeobluriters;
3293  bool myUserandommask;
3294  int64 myRandommaskcombine;
3295  fpreal64 myRandommaskseed;
3296  fpreal64 myRandommaskfrac;
3297  fpreal64 myRandommaskvar;
3298  fpreal64 myRandommaskvargain;
3299  bool myUsecurvemask;
3300  bool myCurvemaskabsrange;
3301  fpreal64 myCurvemaskrangemin;
3302  fpreal64 myCurvemaskrangemax;
3303  fpreal64 myCurvemaskeffectpos;
3304  fpreal64 myCurvemaskfalloff;
3305  fpreal64 myCurvemaskwidth;
3306  UT_SharedPtr<UT_Ramp> myCurvemaskramp;
3307  bool myUseskinlookupattribs;
3308 
3309 };
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)
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)
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:62
ParmType getNestParmType(TempIndex fieldnum) const override
UT_SharedPtr< UT_Ramp > getLengthramp() const
fpreal64 getCurvemaskwidth() const
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:613
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
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:296
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:277
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:92
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
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:361
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:1395
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
Definition: core.h:1131
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
type
Definition: core.h:1059
UT_StringHolder opInputmaskcurveattrib(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
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)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:97
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)