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