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