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