HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_GuideProcessCore.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_GuideProcessCoreEnums
24 {
25  enum class Grouptype
26  {
27  PRIMITIVE = 0,
28  POINT,
29  EDGE
30  };
31  enum class Blendoverride
32  {
33  NONE = 0,
34  CURVEATTRIB,
35  SKINATTRIB,
36  TEXTURE
37  };
38  enum class Op
39  {
40  SETLENGTH = 0
41  };
42  enum class Setlength_mode
43  {
44  SET = 0,
45  MULTIPLY,
46  ADD,
47  SUBTRACT,
48  SETMIN,
49  SETMAX
50  };
51  enum class Setlength_method
52  {
53  SCALE = 0,
54  CUTEXTEND
55  };
57  {
58  NONE = 0,
59  CURVEATTRIB,
60  SKINATTRIB,
61  TEXTURE
62  };
64  {
65  NONE = 0,
66  CURVEATTRIB,
67  SKINATTRIB,
68  TEXTURE
69  };
71  {
72  NONE = 0,
73  CURVEATTRIB,
74  SKINATTRIB,
75  TEXTURE
76  };
78  {
79  NONE = 0,
80  CURVEATTRIB,
81  SKINATTRIB,
82  TEXTURE
83  };
85  {
86  NONE = 0,
87  CURVEATTRIB,
88  SKINATTRIB,
89  TEXTURE
90  };
92  {
93  NONE = 0,
94  CURVEATTRIB,
95  SKINATTRIB,
96  TEXTURE
97  };
98 }
99 
100 
102 {
103 public:
104  static int version() { return 1; }
105 
107  {
108  myUvattrib = "uv"_sh;
109  myGrouptype = 0;
110  myGroup = ""_sh;
111  mySeed = 0;
112  myVismasks = true;
113  myBlend = 1;
114  myBlendoverride = 0;
115  myBlendcurveattrib = "mask"_sh;
116  myBlendattrib = "mask"_sh;
117  myBlendtexture = ""_sh;
118  myOp = 0;
119  mySetlength_mode = 0;
120  mySetlength_method = 1;
121  mySetlength_blend = 1;
122  mySetlength_randomize = false;
123  mySetlength_length = 0.1;
124  mySetlength_lengthoverride = 0;
125  mySetlength_lengthcurveattrib = "length"_sh;
126  mySetlength_lengthattrib = "length"_sh;
127  mySetlength_lengthtexture = ""_sh;
128  mySetlength_lengthrandmin = 0.1;
129  mySetlength_lengthrandminoverride = 0;
130  mySetlength_lengthrandmincurveattrib = "minlength"_sh;
131  mySetlength_lengthrandminattrib = "minlength"_sh;
132  mySetlength_lengthrandmintexture = ""_sh;
133  mySetlength_lengthrandmax = 0.2;
134  mySetlength_lengthrandmaxoverride = 0;
135  mySetlength_lengthrandmaxcurveattrib = "maxlength"_sh;
136  mySetlength_lengthrandmaxattrib = "maxlength"_sh;
137  mySetlength_lengthrandmaxtexture = ""_sh;
138  mySetlength_scalefactor = 1;
139  mySetlength_scalefactoroverride = 0;
140  mySetlength_scalefactorcurveattrib = "scalefactor"_sh;
141  mySetlength_scalefactorattrib = "scalefactor"_sh;
142  mySetlength_scalefactortexture = ""_sh;
143  mySetlength_scalefactorrandmin = 1;
144  mySetlength_scalefactorrandminoverride = 0;
145  mySetlength_scalefactorrandmincurveattrib = "scalefactormin"_sh;
146  mySetlength_scalefactorrandminattrib = "scalefactormin"_sh;
147  mySetlength_scalefactorrandmintexture = ""_sh;
148  mySetlength_scalefactorrandmax = 1;
149  mySetlength_scalefactorrandmaxoverride = 0;
150  mySetlength_scalefactorrandmaxcurveattrib = "scalefactormax"_sh;
151  mySetlength_scalefactorrandmaxattrib = "scalefactormax"_sh;
152  mySetlength_scalefactorrandmaxtexture = ""_sh;
153  mySetlength_cullzerolen = true;
154  mySetlength_cullthreshold = 0.0001;
155 
156  }
157 
158  explicit SOP_GuideProcessCoreParms(const SOP_GuideProcessCoreParms &) = default;
159 
161 
163  {
164  if (myUvattrib != src.myUvattrib) return false;
165  if (myGrouptype != src.myGrouptype) return false;
166  if (myGroup != src.myGroup) return false;
167  if (mySeed != src.mySeed) return false;
168  if (myVismasks != src.myVismasks) return false;
169  if (myBlend != src.myBlend) return false;
170  if (myBlendoverride != src.myBlendoverride) return false;
171  if (myBlendcurveattrib != src.myBlendcurveattrib) return false;
172  if (myBlendattrib != src.myBlendattrib) return false;
173  if (myBlendtexture != src.myBlendtexture) return false;
174  if (myOp != src.myOp) return false;
175  if (mySetlength_mode != src.mySetlength_mode) return false;
176  if (mySetlength_method != src.mySetlength_method) return false;
177  if (mySetlength_blend != src.mySetlength_blend) return false;
178  if (mySetlength_randomize != src.mySetlength_randomize) return false;
179  if (mySetlength_length != src.mySetlength_length) return false;
180  if (mySetlength_lengthoverride != src.mySetlength_lengthoverride) return false;
181  if (mySetlength_lengthcurveattrib != src.mySetlength_lengthcurveattrib) return false;
182  if (mySetlength_lengthattrib != src.mySetlength_lengthattrib) return false;
183  if (mySetlength_lengthtexture != src.mySetlength_lengthtexture) return false;
184  if (mySetlength_lengthrandmin != src.mySetlength_lengthrandmin) return false;
185  if (mySetlength_lengthrandminoverride != src.mySetlength_lengthrandminoverride) return false;
186  if (mySetlength_lengthrandmincurveattrib != src.mySetlength_lengthrandmincurveattrib) return false;
187  if (mySetlength_lengthrandminattrib != src.mySetlength_lengthrandminattrib) return false;
188  if (mySetlength_lengthrandmintexture != src.mySetlength_lengthrandmintexture) return false;
189  if (mySetlength_lengthrandmax != src.mySetlength_lengthrandmax) return false;
190  if (mySetlength_lengthrandmaxoverride != src.mySetlength_lengthrandmaxoverride) return false;
191  if (mySetlength_lengthrandmaxcurveattrib != src.mySetlength_lengthrandmaxcurveattrib) return false;
192  if (mySetlength_lengthrandmaxattrib != src.mySetlength_lengthrandmaxattrib) return false;
193  if (mySetlength_lengthrandmaxtexture != src.mySetlength_lengthrandmaxtexture) return false;
194  if (mySetlength_scalefactor != src.mySetlength_scalefactor) return false;
195  if (mySetlength_scalefactoroverride != src.mySetlength_scalefactoroverride) return false;
196  if (mySetlength_scalefactorcurveattrib != src.mySetlength_scalefactorcurveattrib) return false;
197  if (mySetlength_scalefactorattrib != src.mySetlength_scalefactorattrib) return false;
198  if (mySetlength_scalefactortexture != src.mySetlength_scalefactortexture) return false;
199  if (mySetlength_scalefactorrandmin != src.mySetlength_scalefactorrandmin) return false;
200  if (mySetlength_scalefactorrandminoverride != src.mySetlength_scalefactorrandminoverride) return false;
201  if (mySetlength_scalefactorrandmincurveattrib != src.mySetlength_scalefactorrandmincurveattrib) return false;
202  if (mySetlength_scalefactorrandminattrib != src.mySetlength_scalefactorrandminattrib) return false;
203  if (mySetlength_scalefactorrandmintexture != src.mySetlength_scalefactorrandmintexture) return false;
204  if (mySetlength_scalefactorrandmax != src.mySetlength_scalefactorrandmax) return false;
205  if (mySetlength_scalefactorrandmaxoverride != src.mySetlength_scalefactorrandmaxoverride) return false;
206  if (mySetlength_scalefactorrandmaxcurveattrib != src.mySetlength_scalefactorrandmaxcurveattrib) return false;
207  if (mySetlength_scalefactorrandmaxattrib != src.mySetlength_scalefactorrandmaxattrib) return false;
208  if (mySetlength_scalefactorrandmaxtexture != src.mySetlength_scalefactorrandmaxtexture) return false;
209  if (mySetlength_cullzerolen != src.mySetlength_cullzerolen) return false;
210  if (mySetlength_cullthreshold != src.mySetlength_cullthreshold) return false;
211 
212  return true;
213  }
215  {
216  return !operator==(src);
217  }
229 
230 
231 
232  void buildFromOp(const SOP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
233  {
234  myUvattrib = "uv"_sh;
235  if (true)
236  graph->evalOpParm(myUvattrib, nodeidx, "uvattrib", time, 0);
237  myGrouptype = 0;
238  if (true)
239  graph->evalOpParm(myGrouptype, nodeidx, "grouptype", time, 0);
240  myGroup = ""_sh;
241  if (true)
242  graph->evalOpParm(myGroup, nodeidx, "group", time, 0);
243  mySeed = 0;
244  if (true)
245  graph->evalOpParm(mySeed, nodeidx, "seed", time, 0);
246  myVismasks = true;
247  if (true)
248  graph->evalOpParm(myVismasks, nodeidx, "vismasks", time, 0);
249  myBlend = 1;
250  if (true)
251  graph->evalOpParm(myBlend, nodeidx, "blend", time, 0);
252  myBlendoverride = 0;
253  if (true)
254  graph->evalOpParm(myBlendoverride, nodeidx, "blendoverride", time, 0);
255  myBlendcurveattrib = "mask"_sh;
256  if (true && ( (!(((int64(getBlendoverride())!=1)))) ) )
257  graph->evalOpParm(myBlendcurveattrib, nodeidx, "blendcurveattrib", time, 0);
258  myBlendattrib = "mask"_sh;
259  if (true && ( (!(((int64(getBlendoverride())!=2)))) ) )
260  graph->evalOpParm(myBlendattrib, nodeidx, "blendattrib", time, 0);
261  myBlendtexture = ""_sh;
262  if (true && ( (!(((int64(getBlendoverride())!=3)))) ) )
263  graph->evalOpParm(myBlendtexture, nodeidx, "blendtexture", time, 0);
264  myOp = 0;
265  if (true)
266  graph->evalOpParm(myOp, nodeidx, "op", time, 0);
267  mySetlength_mode = 0;
268  if (true && ( (!(((int64(getOp())!=0)))) ) )
269  graph->evalOpParm(mySetlength_mode, nodeidx, "setlength_mode", time, 0);
270  mySetlength_method = 1;
271  if (true && ( (!(((int64(getOp())!=0)))) ) )
272  graph->evalOpParm(mySetlength_method, nodeidx, "setlength_method", time, 0);
273  mySetlength_blend = 1;
274  if (true && ( (!(((int64(getOp())!=0)))) ) )
275  graph->evalOpParm(mySetlength_blend, nodeidx, "setlength_blend", time, 0);
276  mySetlength_randomize = false;
277  if (true && ( (!(((int64(getOp())!=0)))) ) )
278  graph->evalOpParm(mySetlength_randomize, nodeidx, "setlength_randomize", time, 0);
279  mySetlength_length = 0.1;
280  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())==1))||((getSetlength_randomize()!=0)))) ) )
281  graph->evalOpParm(mySetlength_length, nodeidx, "setlength_length", time, 0);
282  mySetlength_lengthoverride = 0;
283  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())==1))||((getSetlength_randomize()!=0)))) ) )
284  graph->evalOpParm(mySetlength_lengthoverride, nodeidx, "setlength_lengthoverride", time, 0);
285  mySetlength_lengthcurveattrib = "length"_sh;
286  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())==1))||((getSetlength_randomize()!=0))||((int64(getSetlength_lengthoverride())!=1)))) ) )
287  graph->evalOpParm(mySetlength_lengthcurveattrib, nodeidx, "setlength_lengthcurveattrib", time, 0);
288  mySetlength_lengthattrib = "length"_sh;
289  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())==1))||((getSetlength_randomize()!=0))||((int64(getSetlength_lengthoverride())!=2)))) ) )
290  graph->evalOpParm(mySetlength_lengthattrib, nodeidx, "setlength_lengthattrib", time, 0);
291  mySetlength_lengthtexture = ""_sh;
292  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())==1))||((getSetlength_randomize()!=0))||((int64(getSetlength_lengthoverride())!=3)))) ) )
293  graph->evalOpParm(mySetlength_lengthtexture, nodeidx, "setlength_lengthtexture", time, 0);
294  mySetlength_lengthrandmin = 0.1;
295  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())==1))||((getSetlength_randomize()==0)))) ) )
296  graph->evalOpParm(mySetlength_lengthrandmin, nodeidx, "setlength_lengthrandmin", time, 0);
297  mySetlength_lengthrandminoverride = 0;
298  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())==1))||((getSetlength_randomize()==0)))) ) )
299  graph->evalOpParm(mySetlength_lengthrandminoverride, nodeidx, "setlength_lengthrandminoverride", time, 0);
300  mySetlength_lengthrandmincurveattrib = "minlength"_sh;
301  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())==1))||((getSetlength_randomize()==0))||((int64(getSetlength_lengthrandminoverride())!=1)))) ) )
302  graph->evalOpParm(mySetlength_lengthrandmincurveattrib, nodeidx, "setlength_lengthrandmincurveattrib", time, 0);
303  mySetlength_lengthrandminattrib = "minlength"_sh;
304  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())==1))||((getSetlength_randomize()==0))||((int64(getSetlength_lengthrandminoverride())!=2)))) ) )
305  graph->evalOpParm(mySetlength_lengthrandminattrib, nodeidx, "setlength_lengthrandminattrib", time, 0);
306  mySetlength_lengthrandmintexture = ""_sh;
307  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())==1))||((getSetlength_randomize()==0))||((int64(getSetlength_lengthrandminoverride())!=3)))) ) )
308  graph->evalOpParm(mySetlength_lengthrandmintexture, nodeidx, "setlength_lengthrandmintexture", time, 0);
309  mySetlength_lengthrandmax = 0.2;
310  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())==1))||((getSetlength_randomize()==0)))) ) )
311  graph->evalOpParm(mySetlength_lengthrandmax, nodeidx, "setlength_lengthrandmax", time, 0);
312  mySetlength_lengthrandmaxoverride = 0;
313  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())==1))||((getSetlength_randomize()==0)))) ) )
314  graph->evalOpParm(mySetlength_lengthrandmaxoverride, nodeidx, "setlength_lengthrandmaxoverride", time, 0);
315  mySetlength_lengthrandmaxcurveattrib = "maxlength"_sh;
316  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())==1))||((getSetlength_randomize()==0))||((int64(getSetlength_lengthrandmaxoverride())!=1)))) ) )
317  graph->evalOpParm(mySetlength_lengthrandmaxcurveattrib, nodeidx, "setlength_lengthrandmaxcurveattrib", time, 0);
318  mySetlength_lengthrandmaxattrib = "maxlength"_sh;
319  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())==1))||((getSetlength_randomize()==0))||((int64(getSetlength_lengthrandmaxoverride())!=2)))) ) )
320  graph->evalOpParm(mySetlength_lengthrandmaxattrib, nodeidx, "setlength_lengthrandmaxattrib", time, 0);
321  mySetlength_lengthrandmaxtexture = ""_sh;
322  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())==1))||((getSetlength_randomize()==0))||((int64(getSetlength_lengthrandmaxoverride())!=3)))) ) )
323  graph->evalOpParm(mySetlength_lengthrandmaxtexture, nodeidx, "setlength_lengthrandmaxtexture", time, 0);
324  mySetlength_scalefactor = 1;
325  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())!=1))||((getSetlength_randomize()==1)))) ) )
326  graph->evalOpParm(mySetlength_scalefactor, nodeidx, "setlength_scalefactor", time, 0);
327  mySetlength_scalefactoroverride = 0;
328  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())!=1))||((getSetlength_randomize()==1)))) ) )
329  graph->evalOpParm(mySetlength_scalefactoroverride, nodeidx, "setlength_scalefactoroverride", time, 0);
330  mySetlength_scalefactorcurveattrib = "scalefactor"_sh;
331  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())!=1))||((getSetlength_randomize()==1))||((int64(getSetlength_scalefactoroverride())!=1)))) ) )
332  graph->evalOpParm(mySetlength_scalefactorcurveattrib, nodeidx, "setlength_scalefactorcurveattrib", time, 0);
333  mySetlength_scalefactorattrib = "scalefactor"_sh;
334  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())!=1))||((getSetlength_randomize()==1))||((int64(getSetlength_scalefactoroverride())!=2)))) ) )
335  graph->evalOpParm(mySetlength_scalefactorattrib, nodeidx, "setlength_scalefactorattrib", time, 0);
336  mySetlength_scalefactortexture = ""_sh;
337  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())!=1))||((getSetlength_randomize()==1))||((int64(getSetlength_scalefactoroverride())!=3)))) ) )
338  graph->evalOpParm(mySetlength_scalefactortexture, nodeidx, "setlength_scalefactortexture", time, 0);
339  mySetlength_scalefactorrandmin = 1;
340  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())!=1))||((getSetlength_randomize()==0)))) ) )
341  graph->evalOpParm(mySetlength_scalefactorrandmin, nodeidx, "setlength_scalefactorrandmin", time, 0);
342  mySetlength_scalefactorrandminoverride = 0;
343  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())!=1))||((getSetlength_randomize()==0)))) ) )
344  graph->evalOpParm(mySetlength_scalefactorrandminoverride, nodeidx, "setlength_scalefactorrandminoverride", time, 0);
345  mySetlength_scalefactorrandmincurveattrib = "scalefactormin"_sh;
346  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())!=1))||((getSetlength_randomize()==0))||((int64(getSetlength_scalefactorrandminoverride())!=1)))) ) )
347  graph->evalOpParm(mySetlength_scalefactorrandmincurveattrib, nodeidx, "setlength_scalefactorrandmincurveattrib", time, 0);
348  mySetlength_scalefactorrandminattrib = "scalefactormin"_sh;
349  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())!=1))||((getSetlength_randomize()==0))||((int64(getSetlength_scalefactorrandminoverride())!=2)))) ) )
350  graph->evalOpParm(mySetlength_scalefactorrandminattrib, nodeidx, "setlength_scalefactorrandminattrib", time, 0);
351  mySetlength_scalefactorrandmintexture = ""_sh;
352  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())!=1))||((getSetlength_randomize()==0))||((int64(getSetlength_scalefactorrandminoverride())!=3)))) ) )
353  graph->evalOpParm(mySetlength_scalefactorrandmintexture, nodeidx, "setlength_scalefactorrandmintexture", time, 0);
354  mySetlength_scalefactorrandmax = 1;
355  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())!=1))||((getSetlength_randomize()==0)))) ) )
356  graph->evalOpParm(mySetlength_scalefactorrandmax, nodeidx, "setlength_scalefactorrandmax", time, 0);
357  mySetlength_scalefactorrandmaxoverride = 0;
358  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())!=1))||((getSetlength_randomize()==0)))) ) )
359  graph->evalOpParm(mySetlength_scalefactorrandmaxoverride, nodeidx, "setlength_scalefactorrandmaxoverride", time, 0);
360  mySetlength_scalefactorrandmaxcurveattrib = "scalefactormax"_sh;
361  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())!=1))||((getSetlength_randomize()==0))||((int64(getSetlength_scalefactorrandmaxoverride())!=1)))) ) )
362  graph->evalOpParm(mySetlength_scalefactorrandmaxcurveattrib, nodeidx, "setlength_scalefactorrandmaxcurveattrib", time, 0);
363  mySetlength_scalefactorrandmaxattrib = "scalefactormax"_sh;
364  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())!=1))||((getSetlength_randomize()==0))||((int64(getSetlength_scalefactorrandmaxoverride())!=2)))) ) )
365  graph->evalOpParm(mySetlength_scalefactorrandmaxattrib, nodeidx, "setlength_scalefactorrandmaxattrib", time, 0);
366  mySetlength_scalefactorrandmaxtexture = ""_sh;
367  if (true && ( (!(((int64(getOp())!=0))||((int64(getSetlength_mode())!=1))||((getSetlength_randomize()==0))||((int64(getSetlength_scalefactorrandmaxoverride())!=3)))) ) )
368  graph->evalOpParm(mySetlength_scalefactorrandmaxtexture, nodeidx, "setlength_scalefactorrandmaxtexture", time, 0);
369  mySetlength_cullzerolen = true;
370  if (true && ( (!(((int64(getOp())!=0)))) ) )
371  graph->evalOpParm(mySetlength_cullzerolen, nodeidx, "setlength_cullzerolen", time, 0);
372  mySetlength_cullthreshold = 0.0001;
373  if (true && ( (!(((getSetlength_cullzerolen()==0))||((int64(getOp())!=0)))) ) )
374  graph->evalOpParm(mySetlength_cullthreshold, nodeidx, "setlength_cullthreshold", time, 0);
375 
376  }
377 
378 
379  void loadFromOpSubclass(const LoadParms &loadparms) override
380  {
381  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
382  }
383 
384 
385  void copyFrom(const SOP_NodeParms *src) override
386  {
387  *this = *((const SOP_GuideProcessCoreParms *)src);
388  }
389 
390  template <typename T>
391  void
392  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
393  {
394  if (idx.size() < 1)
395  return;
396  UT_ASSERT(idx.size() == instance.size()+1);
397  if (idx.size() != instance.size()+1)
398  return;
399  switch (idx[0])
400  {
401  case 0:
402  coerceValue(value, myUvattrib);
403  break;
404  case 1:
405  coerceValue(value, myGrouptype);
406  break;
407  case 2:
408  coerceValue(value, myGroup);
409  break;
410  case 3:
411  coerceValue(value, mySeed);
412  break;
413  case 4:
414  coerceValue(value, myVismasks);
415  break;
416  case 5:
417  coerceValue(value, myBlend);
418  break;
419  case 6:
420  coerceValue(value, myBlendoverride);
421  break;
422  case 7:
423  coerceValue(value, myBlendcurveattrib);
424  break;
425  case 8:
426  coerceValue(value, myBlendattrib);
427  break;
428  case 9:
429  coerceValue(value, myBlendtexture);
430  break;
431  case 10:
432  coerceValue(value, myOp);
433  break;
434  case 11:
435  coerceValue(value, mySetlength_mode);
436  break;
437  case 12:
438  coerceValue(value, mySetlength_method);
439  break;
440  case 13:
441  coerceValue(value, mySetlength_blend);
442  break;
443  case 14:
444  coerceValue(value, mySetlength_randomize);
445  break;
446  case 15:
447  coerceValue(value, mySetlength_length);
448  break;
449  case 16:
450  coerceValue(value, mySetlength_lengthoverride);
451  break;
452  case 17:
453  coerceValue(value, mySetlength_lengthcurveattrib);
454  break;
455  case 18:
456  coerceValue(value, mySetlength_lengthattrib);
457  break;
458  case 19:
459  coerceValue(value, mySetlength_lengthtexture);
460  break;
461  case 20:
462  coerceValue(value, mySetlength_lengthrandmin);
463  break;
464  case 21:
465  coerceValue(value, mySetlength_lengthrandminoverride);
466  break;
467  case 22:
468  coerceValue(value, mySetlength_lengthrandmincurveattrib);
469  break;
470  case 23:
471  coerceValue(value, mySetlength_lengthrandminattrib);
472  break;
473  case 24:
474  coerceValue(value, mySetlength_lengthrandmintexture);
475  break;
476  case 25:
477  coerceValue(value, mySetlength_lengthrandmax);
478  break;
479  case 26:
480  coerceValue(value, mySetlength_lengthrandmaxoverride);
481  break;
482  case 27:
483  coerceValue(value, mySetlength_lengthrandmaxcurveattrib);
484  break;
485  case 28:
486  coerceValue(value, mySetlength_lengthrandmaxattrib);
487  break;
488  case 29:
489  coerceValue(value, mySetlength_lengthrandmaxtexture);
490  break;
491  case 30:
492  coerceValue(value, mySetlength_scalefactor);
493  break;
494  case 31:
495  coerceValue(value, mySetlength_scalefactoroverride);
496  break;
497  case 32:
498  coerceValue(value, mySetlength_scalefactorcurveattrib);
499  break;
500  case 33:
501  coerceValue(value, mySetlength_scalefactorattrib);
502  break;
503  case 34:
504  coerceValue(value, mySetlength_scalefactortexture);
505  break;
506  case 35:
507  coerceValue(value, mySetlength_scalefactorrandmin);
508  break;
509  case 36:
510  coerceValue(value, mySetlength_scalefactorrandminoverride);
511  break;
512  case 37:
513  coerceValue(value, mySetlength_scalefactorrandmincurveattrib);
514  break;
515  case 38:
516  coerceValue(value, mySetlength_scalefactorrandminattrib);
517  break;
518  case 39:
519  coerceValue(value, mySetlength_scalefactorrandmintexture);
520  break;
521  case 40:
522  coerceValue(value, mySetlength_scalefactorrandmax);
523  break;
524  case 41:
525  coerceValue(value, mySetlength_scalefactorrandmaxoverride);
526  break;
527  case 42:
528  coerceValue(value, mySetlength_scalefactorrandmaxcurveattrib);
529  break;
530  case 43:
531  coerceValue(value, mySetlength_scalefactorrandmaxattrib);
532  break;
533  case 44:
534  coerceValue(value, mySetlength_scalefactorrandmaxtexture);
535  break;
536  case 45:
537  coerceValue(value, mySetlength_cullzerolen);
538  break;
539  case 46:
540  coerceValue(value, mySetlength_cullthreshold);
541  break;
542 
543  }
544  }
545 
546  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
547  { doGetParmValue(idx, instance, value); }
548  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
549  { doGetParmValue(idx, instance, value); }
550  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
551  { doGetParmValue(idx, instance, value); }
552  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
553  { doGetParmValue(idx, instance, value); }
554  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
555  { doGetParmValue(idx, instance, value); }
556  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
557  { doGetParmValue(idx, instance, value); }
558  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
559  { doGetParmValue(idx, instance, value); }
560  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
561  { doGetParmValue(idx, instance, value); }
562  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
563  { doGetParmValue(idx, instance, value); }
564  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
565  { doGetParmValue(idx, instance, value); }
566  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
567  { doGetParmValue(idx, instance, value); }
568 
569  template <typename T>
570  void
571  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
572  {
573  if (idx.size() < 1)
574  return;
575  UT_ASSERT(idx.size() == instance.size()+1);
576  if (idx.size() != instance.size()+1)
577  return;
578  switch (idx[0])
579  {
580  case 0:
581  coerceValue(myUvattrib, value);
582  break;
583  case 1:
584  coerceValue(myGrouptype, value);
585  break;
586  case 2:
587  coerceValue(myGroup, value);
588  break;
589  case 3:
590  coerceValue(mySeed, value);
591  break;
592  case 4:
593  coerceValue(myVismasks, value);
594  break;
595  case 5:
596  coerceValue(myBlend, value);
597  break;
598  case 6:
599  coerceValue(myBlendoverride, value);
600  break;
601  case 7:
602  coerceValue(myBlendcurveattrib, value);
603  break;
604  case 8:
605  coerceValue(myBlendattrib, value);
606  break;
607  case 9:
608  coerceValue(myBlendtexture, value);
609  break;
610  case 10:
611  coerceValue(myOp, value);
612  break;
613  case 11:
614  coerceValue(mySetlength_mode, value);
615  break;
616  case 12:
617  coerceValue(mySetlength_method, value);
618  break;
619  case 13:
620  coerceValue(mySetlength_blend, value);
621  break;
622  case 14:
623  coerceValue(mySetlength_randomize, value);
624  break;
625  case 15:
626  coerceValue(mySetlength_length, value);
627  break;
628  case 16:
629  coerceValue(mySetlength_lengthoverride, value);
630  break;
631  case 17:
632  coerceValue(mySetlength_lengthcurveattrib, value);
633  break;
634  case 18:
635  coerceValue(mySetlength_lengthattrib, value);
636  break;
637  case 19:
638  coerceValue(mySetlength_lengthtexture, value);
639  break;
640  case 20:
641  coerceValue(mySetlength_lengthrandmin, value);
642  break;
643  case 21:
644  coerceValue(mySetlength_lengthrandminoverride, value);
645  break;
646  case 22:
647  coerceValue(mySetlength_lengthrandmincurveattrib, value);
648  break;
649  case 23:
650  coerceValue(mySetlength_lengthrandminattrib, value);
651  break;
652  case 24:
653  coerceValue(mySetlength_lengthrandmintexture, value);
654  break;
655  case 25:
656  coerceValue(mySetlength_lengthrandmax, value);
657  break;
658  case 26:
659  coerceValue(mySetlength_lengthrandmaxoverride, value);
660  break;
661  case 27:
662  coerceValue(mySetlength_lengthrandmaxcurveattrib, value);
663  break;
664  case 28:
665  coerceValue(mySetlength_lengthrandmaxattrib, value);
666  break;
667  case 29:
668  coerceValue(mySetlength_lengthrandmaxtexture, value);
669  break;
670  case 30:
671  coerceValue(mySetlength_scalefactor, value);
672  break;
673  case 31:
674  coerceValue(mySetlength_scalefactoroverride, value);
675  break;
676  case 32:
677  coerceValue(mySetlength_scalefactorcurveattrib, value);
678  break;
679  case 33:
680  coerceValue(mySetlength_scalefactorattrib, value);
681  break;
682  case 34:
683  coerceValue(mySetlength_scalefactortexture, value);
684  break;
685  case 35:
686  coerceValue(mySetlength_scalefactorrandmin, value);
687  break;
688  case 36:
689  coerceValue(mySetlength_scalefactorrandminoverride, value);
690  break;
691  case 37:
692  coerceValue(mySetlength_scalefactorrandmincurveattrib, value);
693  break;
694  case 38:
695  coerceValue(mySetlength_scalefactorrandminattrib, value);
696  break;
697  case 39:
698  coerceValue(mySetlength_scalefactorrandmintexture, value);
699  break;
700  case 40:
701  coerceValue(mySetlength_scalefactorrandmax, value);
702  break;
703  case 41:
704  coerceValue(mySetlength_scalefactorrandmaxoverride, value);
705  break;
706  case 42:
707  coerceValue(mySetlength_scalefactorrandmaxcurveattrib, value);
708  break;
709  case 43:
710  coerceValue(mySetlength_scalefactorrandmaxattrib, value);
711  break;
712  case 44:
713  coerceValue(mySetlength_scalefactorrandmaxtexture, value);
714  break;
715  case 45:
716  coerceValue(mySetlength_cullzerolen, value);
717  break;
718  case 46:
719  coerceValue(mySetlength_cullthreshold, value);
720  break;
721 
722  }
723  }
724 
725  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
726  { doSetParmValue(idx, instance, value); }
727  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
728  { doSetParmValue(idx, instance, value); }
729  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
730  { doSetParmValue(idx, instance, value); }
731  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
732  { doSetParmValue(idx, instance, value); }
733  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
734  { doSetParmValue(idx, instance, value); }
735  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
736  { doSetParmValue(idx, instance, value); }
737  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
738  { doSetParmValue(idx, instance, value); }
739  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
740  { doSetParmValue(idx, instance, value); }
741  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
742  { doSetParmValue(idx, instance, value); }
743  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
744  { doSetParmValue(idx, instance, value); }
745  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
746  { doSetParmValue(idx, instance, value); }
747 
748  exint getNestNumParms(TempIndex idx) const override
749  {
750  if (idx.size() == 0)
751  return 47;
752  switch (idx[0])
753  {
754 
755  }
756  // Invalid
757  return 0;
758  }
759 
760  const char *getNestParmName(TempIndex fieldnum) const override
761  {
762  if (fieldnum.size() < 1)
763  return 0;
764  switch (fieldnum[0])
765  {
766  case 0:
767  return "uvattrib";
768  case 1:
769  return "grouptype";
770  case 2:
771  return "group";
772  case 3:
773  return "seed";
774  case 4:
775  return "vismasks";
776  case 5:
777  return "blend";
778  case 6:
779  return "blendoverride";
780  case 7:
781  return "blendcurveattrib";
782  case 8:
783  return "blendattrib";
784  case 9:
785  return "blendtexture";
786  case 10:
787  return "op";
788  case 11:
789  return "setlength_mode";
790  case 12:
791  return "setlength_method";
792  case 13:
793  return "setlength_blend";
794  case 14:
795  return "setlength_randomize";
796  case 15:
797  return "setlength_length";
798  case 16:
799  return "setlength_lengthoverride";
800  case 17:
801  return "setlength_lengthcurveattrib";
802  case 18:
803  return "setlength_lengthattrib";
804  case 19:
805  return "setlength_lengthtexture";
806  case 20:
807  return "setlength_lengthrandmin";
808  case 21:
809  return "setlength_lengthrandminoverride";
810  case 22:
811  return "setlength_lengthrandmincurveattrib";
812  case 23:
813  return "setlength_lengthrandminattrib";
814  case 24:
815  return "setlength_lengthrandmintexture";
816  case 25:
817  return "setlength_lengthrandmax";
818  case 26:
819  return "setlength_lengthrandmaxoverride";
820  case 27:
821  return "setlength_lengthrandmaxcurveattrib";
822  case 28:
823  return "setlength_lengthrandmaxattrib";
824  case 29:
825  return "setlength_lengthrandmaxtexture";
826  case 30:
827  return "setlength_scalefactor";
828  case 31:
829  return "setlength_scalefactoroverride";
830  case 32:
831  return "setlength_scalefactorcurveattrib";
832  case 33:
833  return "setlength_scalefactorattrib";
834  case 34:
835  return "setlength_scalefactortexture";
836  case 35:
837  return "setlength_scalefactorrandmin";
838  case 36:
839  return "setlength_scalefactorrandminoverride";
840  case 37:
841  return "setlength_scalefactorrandmincurveattrib";
842  case 38:
843  return "setlength_scalefactorrandminattrib";
844  case 39:
845  return "setlength_scalefactorrandmintexture";
846  case 40:
847  return "setlength_scalefactorrandmax";
848  case 41:
849  return "setlength_scalefactorrandmaxoverride";
850  case 42:
851  return "setlength_scalefactorrandmaxcurveattrib";
852  case 43:
853  return "setlength_scalefactorrandmaxattrib";
854  case 44:
855  return "setlength_scalefactorrandmaxtexture";
856  case 45:
857  return "setlength_cullzerolen";
858  case 46:
859  return "setlength_cullthreshold";
860 
861  }
862  return 0;
863  }
864 
865  ParmType getNestParmType(TempIndex fieldnum) const override
866  {
867  if (fieldnum.size() < 1)
868  return PARM_UNSUPPORTED;
869  switch (fieldnum[0])
870  {
871  case 0:
872  return PARM_STRING;
873  case 1:
874  return PARM_INTEGER;
875  case 2:
876  return PARM_STRING;
877  case 3:
878  return PARM_FLOAT;
879  case 4:
880  return PARM_INTEGER;
881  case 5:
882  return PARM_FLOAT;
883  case 6:
884  return PARM_INTEGER;
885  case 7:
886  return PARM_STRING;
887  case 8:
888  return PARM_STRING;
889  case 9:
890  return PARM_STRING;
891  case 10:
892  return PARM_INTEGER;
893  case 11:
894  return PARM_INTEGER;
895  case 12:
896  return PARM_INTEGER;
897  case 13:
898  return PARM_FLOAT;
899  case 14:
900  return PARM_INTEGER;
901  case 15:
902  return PARM_FLOAT;
903  case 16:
904  return PARM_INTEGER;
905  case 17:
906  return PARM_STRING;
907  case 18:
908  return PARM_STRING;
909  case 19:
910  return PARM_STRING;
911  case 20:
912  return PARM_FLOAT;
913  case 21:
914  return PARM_INTEGER;
915  case 22:
916  return PARM_STRING;
917  case 23:
918  return PARM_STRING;
919  case 24:
920  return PARM_STRING;
921  case 25:
922  return PARM_FLOAT;
923  case 26:
924  return PARM_INTEGER;
925  case 27:
926  return PARM_STRING;
927  case 28:
928  return PARM_STRING;
929  case 29:
930  return PARM_STRING;
931  case 30:
932  return PARM_FLOAT;
933  case 31:
934  return PARM_INTEGER;
935  case 32:
936  return PARM_STRING;
937  case 33:
938  return PARM_STRING;
939  case 34:
940  return PARM_STRING;
941  case 35:
942  return PARM_FLOAT;
943  case 36:
944  return PARM_INTEGER;
945  case 37:
946  return PARM_STRING;
947  case 38:
948  return PARM_STRING;
949  case 39:
950  return PARM_STRING;
951  case 40:
952  return PARM_FLOAT;
953  case 41:
954  return PARM_INTEGER;
955  case 42:
956  return PARM_STRING;
957  case 43:
958  return PARM_STRING;
959  case 44:
960  return PARM_STRING;
961  case 45:
962  return PARM_INTEGER;
963  case 46:
964  return PARM_FLOAT;
965 
966  }
967  return PARM_UNSUPPORTED;
968  }
969 
970  // Boiler plate to load individual types.
971  static void loadData(UT_IStream &is, int64 &v)
972  { is.bread(&v, 1); }
973  static void loadData(UT_IStream &is, bool &v)
974  { int64 iv; is.bread(&iv, 1); v = iv; }
975  static void loadData(UT_IStream &is, fpreal64 &v)
976  { is.bread<fpreal64>(&v, 1); }
977  static void loadData(UT_IStream &is, UT_Vector2D &v)
978  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
979  static void loadData(UT_IStream &is, UT_Vector3D &v)
980  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
981  is.bread<fpreal64>(&v.z(), 1); }
982  static void loadData(UT_IStream &is, UT_Vector4D &v)
983  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
984  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
985  static void loadData(UT_IStream &is, UT_Matrix2D &v)
986  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
987  static void loadData(UT_IStream &is, UT_Matrix3D &v)
988  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
989  static void loadData(UT_IStream &is, UT_Matrix4D &v)
990  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
991  static void loadData(UT_IStream &is, UT_Vector2I &v)
992  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
993  static void loadData(UT_IStream &is, UT_Vector3I &v)
994  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
995  is.bread<int64>(&v.z(), 1); }
996  static void loadData(UT_IStream &is, UT_Vector4I &v)
997  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
998  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
1000  { is.bread(v); }
1002  { UT_StringHolder rampdata;
1003  loadData(is, rampdata);
1004  if (rampdata.isstring())
1005  {
1006  v.reset(new UT_Ramp());
1007  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
1008  v->load(istr);
1009  }
1010  else v.reset();
1011  }
1014  loadData(is, data);
1015  if (data.isstring())
1016  {
1017  // Find the data type.
1018  const char *colon = UT_StringWrap(data).findChar(':');
1019  if (colon)
1020  {
1021  int typelen = colon - data.buffer();
1023  type.strncpy(data.buffer(), typelen);
1024  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
1025 
1026  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
1027  }
1028  }
1029  else v.reset();
1030  }
1031 
1032  static void saveData(std::ostream &os, int64 v)
1033  { UTwrite(os, &v); }
1034  static void saveData(std::ostream &os, bool v)
1035  { int64 iv = v; UTwrite(os, &iv); }
1036  static void saveData(std::ostream &os, fpreal64 v)
1037  { UTwrite<fpreal64>(os, &v); }
1038  static void saveData(std::ostream &os, UT_Vector2D v)
1039  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
1040  static void saveData(std::ostream &os, UT_Vector3D v)
1041  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
1042  UTwrite<fpreal64>(os, &v.z()); }
1043  static void saveData(std::ostream &os, UT_Vector4D v)
1044  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
1045  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
1046  static void saveData(std::ostream &os, UT_Matrix2D v)
1048  static void saveData(std::ostream &os, UT_Matrix3D v)
1050  static void saveData(std::ostream &os, UT_Matrix4D v)
1052  static void saveData(std::ostream &os, UT_StringHolder s)
1053  { UT_StringWrap(s).saveBinary(os); }
1054  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
1056  UT_OStringStream ostr;
1057  if (s) s->save(ostr);
1058  result = ostr.str();
1059  saveData(os, result);
1060  }
1061  static void saveData(std::ostream &os, PRM_DataItemHandle s)
1063  UT_OStringStream ostr;
1064  if (s)
1065  {
1066  ostr << s->getDataTypeToken();
1067  ostr << ":";
1068  s->saveBinary(ostr);
1069  }
1070  result = ostr.str();
1071  saveData(os, result);
1072  }
1073 
1074 
1075  void save(std::ostream &os) const
1076  {
1077  int32 v = version();
1078  UTwrite(os, &v);
1079  saveData(os, myUvattrib);
1080  saveData(os, myGrouptype);
1081  saveData(os, myGroup);
1082  saveData(os, mySeed);
1083  saveData(os, myVismasks);
1084  saveData(os, myBlend);
1085  saveData(os, myBlendoverride);
1086  saveData(os, myBlendcurveattrib);
1087  saveData(os, myBlendattrib);
1088  saveData(os, myBlendtexture);
1089  saveData(os, myOp);
1090  saveData(os, mySetlength_mode);
1091  saveData(os, mySetlength_method);
1092  saveData(os, mySetlength_blend);
1093  saveData(os, mySetlength_randomize);
1094  saveData(os, mySetlength_length);
1095  saveData(os, mySetlength_lengthoverride);
1096  saveData(os, mySetlength_lengthcurveattrib);
1097  saveData(os, mySetlength_lengthattrib);
1098  saveData(os, mySetlength_lengthtexture);
1099  saveData(os, mySetlength_lengthrandmin);
1100  saveData(os, mySetlength_lengthrandminoverride);
1101  saveData(os, mySetlength_lengthrandmincurveattrib);
1102  saveData(os, mySetlength_lengthrandminattrib);
1103  saveData(os, mySetlength_lengthrandmintexture);
1104  saveData(os, mySetlength_lengthrandmax);
1105  saveData(os, mySetlength_lengthrandmaxoverride);
1106  saveData(os, mySetlength_lengthrandmaxcurveattrib);
1107  saveData(os, mySetlength_lengthrandmaxattrib);
1108  saveData(os, mySetlength_lengthrandmaxtexture);
1109  saveData(os, mySetlength_scalefactor);
1110  saveData(os, mySetlength_scalefactoroverride);
1111  saveData(os, mySetlength_scalefactorcurveattrib);
1112  saveData(os, mySetlength_scalefactorattrib);
1113  saveData(os, mySetlength_scalefactortexture);
1114  saveData(os, mySetlength_scalefactorrandmin);
1115  saveData(os, mySetlength_scalefactorrandminoverride);
1116  saveData(os, mySetlength_scalefactorrandmincurveattrib);
1117  saveData(os, mySetlength_scalefactorrandminattrib);
1118  saveData(os, mySetlength_scalefactorrandmintexture);
1119  saveData(os, mySetlength_scalefactorrandmax);
1120  saveData(os, mySetlength_scalefactorrandmaxoverride);
1121  saveData(os, mySetlength_scalefactorrandmaxcurveattrib);
1122  saveData(os, mySetlength_scalefactorrandmaxattrib);
1123  saveData(os, mySetlength_scalefactorrandmaxtexture);
1124  saveData(os, mySetlength_cullzerolen);
1125  saveData(os, mySetlength_cullthreshold);
1126 
1127  }
1128 
1129  bool load(UT_IStream &is)
1130  {
1131  int32 v;
1132  is.bread(&v, 1);
1133  if (version() != v)
1134  {
1135  // Fail incompatible versions
1136  return false;
1137  }
1138  loadData(is, myUvattrib);
1139  loadData(is, myGrouptype);
1140  loadData(is, myGroup);
1141  loadData(is, mySeed);
1142  loadData(is, myVismasks);
1143  loadData(is, myBlend);
1144  loadData(is, myBlendoverride);
1145  loadData(is, myBlendcurveattrib);
1146  loadData(is, myBlendattrib);
1147  loadData(is, myBlendtexture);
1148  loadData(is, myOp);
1149  loadData(is, mySetlength_mode);
1150  loadData(is, mySetlength_method);
1151  loadData(is, mySetlength_blend);
1152  loadData(is, mySetlength_randomize);
1153  loadData(is, mySetlength_length);
1154  loadData(is, mySetlength_lengthoverride);
1155  loadData(is, mySetlength_lengthcurveattrib);
1156  loadData(is, mySetlength_lengthattrib);
1157  loadData(is, mySetlength_lengthtexture);
1158  loadData(is, mySetlength_lengthrandmin);
1159  loadData(is, mySetlength_lengthrandminoverride);
1160  loadData(is, mySetlength_lengthrandmincurveattrib);
1161  loadData(is, mySetlength_lengthrandminattrib);
1162  loadData(is, mySetlength_lengthrandmintexture);
1163  loadData(is, mySetlength_lengthrandmax);
1164  loadData(is, mySetlength_lengthrandmaxoverride);
1165  loadData(is, mySetlength_lengthrandmaxcurveattrib);
1166  loadData(is, mySetlength_lengthrandmaxattrib);
1167  loadData(is, mySetlength_lengthrandmaxtexture);
1168  loadData(is, mySetlength_scalefactor);
1169  loadData(is, mySetlength_scalefactoroverride);
1170  loadData(is, mySetlength_scalefactorcurveattrib);
1171  loadData(is, mySetlength_scalefactorattrib);
1172  loadData(is, mySetlength_scalefactortexture);
1173  loadData(is, mySetlength_scalefactorrandmin);
1174  loadData(is, mySetlength_scalefactorrandminoverride);
1175  loadData(is, mySetlength_scalefactorrandmincurveattrib);
1176  loadData(is, mySetlength_scalefactorrandminattrib);
1177  loadData(is, mySetlength_scalefactorrandmintexture);
1178  loadData(is, mySetlength_scalefactorrandmax);
1179  loadData(is, mySetlength_scalefactorrandmaxoverride);
1180  loadData(is, mySetlength_scalefactorrandmaxcurveattrib);
1181  loadData(is, mySetlength_scalefactorrandmaxattrib);
1182  loadData(is, mySetlength_scalefactorrandmaxtexture);
1183  loadData(is, mySetlength_cullzerolen);
1184  loadData(is, mySetlength_cullthreshold);
1185 
1186  return true;
1187  }
1188 
1189  const UT_StringHolder & getUvattrib() const { return myUvattrib; }
1190  void setUvattrib(const UT_StringHolder & val) { myUvattrib = val; }
1192  {
1193  SOP_Node *thissop = cookparms.getNode();
1194  if (!thissop) return getUvattrib();
1196  OP_Utils::evalOpParm(result, thissop, "uvattrib", cookparms.getCookTime(), 0);
1197  return result;
1198  }
1199  Grouptype getGrouptype() const { return Grouptype(myGrouptype); }
1200  void setGrouptype(Grouptype val) { myGrouptype = int64(val); }
1202  {
1203  SOP_Node *thissop = cookparms.getNode();
1204  if (!thissop) return getGrouptype();
1205  int64 result;
1206  OP_Utils::evalOpParm(result, thissop, "grouptype", cookparms.getCookTime(), 0);
1207  return Grouptype(result);
1208  }
1209  const UT_StringHolder & getGroup() const { return myGroup; }
1210  void setGroup(const UT_StringHolder & val) { myGroup = val; }
1212  {
1213  SOP_Node *thissop = cookparms.getNode();
1214  if (!thissop) return getGroup();
1216  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
1217  return result;
1218  }
1219  fpreal64 getSeed() const { return mySeed; }
1220  void setSeed(fpreal64 val) { mySeed = val; }
1221  fpreal64 opSeed(const SOP_NodeVerb::CookParms &cookparms) const
1222  {
1223  SOP_Node *thissop = cookparms.getNode();
1224  if (!thissop) return getSeed();
1225  fpreal64 result;
1226  OP_Utils::evalOpParm(result, thissop, "seed", cookparms.getCookTime(), 0);
1227  return result;
1228  }
1229  bool getVismasks() const { return myVismasks; }
1230  void setVismasks(bool val) { myVismasks = val; }
1231  bool opVismasks(const SOP_NodeVerb::CookParms &cookparms) const
1232  {
1233  SOP_Node *thissop = cookparms.getNode();
1234  if (!thissop) return getVismasks();
1235  bool result;
1236  OP_Utils::evalOpParm(result, thissop, "vismasks", cookparms.getCookTime(), 0);
1237  return result;
1238  }
1239  fpreal64 getBlend() const { return myBlend; }
1240  void setBlend(fpreal64 val) { myBlend = val; }
1241  fpreal64 opBlend(const SOP_NodeVerb::CookParms &cookparms) const
1242  {
1243  SOP_Node *thissop = cookparms.getNode();
1244  if (!thissop) return getBlend();
1245  fpreal64 result;
1246  OP_Utils::evalOpParm(result, thissop, "blend", cookparms.getCookTime(), 0);
1247  return result;
1248  }
1249  Blendoverride getBlendoverride() const { return Blendoverride(myBlendoverride); }
1250  void setBlendoverride(Blendoverride val) { myBlendoverride = int64(val); }
1252  {
1253  SOP_Node *thissop = cookparms.getNode();
1254  if (!thissop) return getBlendoverride();
1255  int64 result;
1256  OP_Utils::evalOpParm(result, thissop, "blendoverride", cookparms.getCookTime(), 0);
1257  return Blendoverride(result);
1258  }
1259  const UT_StringHolder & getBlendcurveattrib() const { return myBlendcurveattrib; }
1260  void setBlendcurveattrib(const UT_StringHolder & val) { myBlendcurveattrib = val; }
1262  {
1263  SOP_Node *thissop = cookparms.getNode();
1264  if (!thissop) return getBlendcurveattrib();
1266  OP_Utils::evalOpParm(result, thissop, "blendcurveattrib", cookparms.getCookTime(), 0);
1267  return result;
1268  }
1269  const UT_StringHolder & getBlendattrib() const { return myBlendattrib; }
1270  void setBlendattrib(const UT_StringHolder & val) { myBlendattrib = val; }
1272  {
1273  SOP_Node *thissop = cookparms.getNode();
1274  if (!thissop) return getBlendattrib();
1276  OP_Utils::evalOpParm(result, thissop, "blendattrib", cookparms.getCookTime(), 0);
1277  return result;
1278  }
1279  const UT_StringHolder & getBlendtexture() const { return myBlendtexture; }
1280  void setBlendtexture(const UT_StringHolder & val) { myBlendtexture = val; }
1282  {
1283  SOP_Node *thissop = cookparms.getNode();
1284  if (!thissop) return getBlendtexture();
1286  OP_Utils::evalOpParm(result, thissop, "blendtexture", cookparms.getCookTime(), 0);
1287  return result;
1288  }
1289  Op getOp() const { return Op(myOp); }
1290  void setOp(Op val) { myOp = int64(val); }
1291  Op opOp(const SOP_NodeVerb::CookParms &cookparms) const
1292  {
1293  SOP_Node *thissop = cookparms.getNode();
1294  if (!thissop) return getOp();
1295  int64 result;
1296  OP_Utils::evalOpParm(result, thissop, "op", cookparms.getCookTime(), 0);
1297  return Op(result);
1298  }
1299  Setlength_mode getSetlength_mode() const { return Setlength_mode(mySetlength_mode); }
1300  void setSetlength_mode(Setlength_mode val) { mySetlength_mode = int64(val); }
1302  {
1303  SOP_Node *thissop = cookparms.getNode();
1304  if (!thissop) return getSetlength_mode();
1305  int64 result;
1306  OP_Utils::evalOpParm(result, thissop, "setlength_mode", cookparms.getCookTime(), 0);
1307  return Setlength_mode(result);
1308  }
1309  Setlength_method getSetlength_method() const { return Setlength_method(mySetlength_method); }
1310  void setSetlength_method(Setlength_method val) { mySetlength_method = int64(val); }
1312  {
1313  SOP_Node *thissop = cookparms.getNode();
1314  if (!thissop) return getSetlength_method();
1315  int64 result;
1316  OP_Utils::evalOpParm(result, thissop, "setlength_method", cookparms.getCookTime(), 0);
1317  return Setlength_method(result);
1318  }
1319  fpreal64 getSetlength_blend() const { return mySetlength_blend; }
1320  void setSetlength_blend(fpreal64 val) { mySetlength_blend = val; }
1322  {
1323  SOP_Node *thissop = cookparms.getNode();
1324  if (!thissop) return getSetlength_blend();
1325  fpreal64 result;
1326  OP_Utils::evalOpParm(result, thissop, "setlength_blend", cookparms.getCookTime(), 0);
1327  return result;
1328  }
1329  bool getSetlength_randomize() const { return mySetlength_randomize; }
1330  void setSetlength_randomize(bool val) { mySetlength_randomize = val; }
1331  bool opSetlength_randomize(const SOP_NodeVerb::CookParms &cookparms) const
1332  {
1333  SOP_Node *thissop = cookparms.getNode();
1334  if (!thissop) return getSetlength_randomize();
1335  bool result;
1336  OP_Utils::evalOpParm(result, thissop, "setlength_randomize", cookparms.getCookTime(), 0);
1337  return result;
1338  }
1339  fpreal64 getSetlength_length() const { return mySetlength_length; }
1340  void setSetlength_length(fpreal64 val) { mySetlength_length = val; }
1342  {
1343  SOP_Node *thissop = cookparms.getNode();
1344  if (!thissop) return getSetlength_length();
1345  fpreal64 result;
1346  OP_Utils::evalOpParm(result, thissop, "setlength_length", cookparms.getCookTime(), 0);
1347  return result;
1348  }
1350  void setSetlength_lengthoverride(Setlength_lengthoverride val) { mySetlength_lengthoverride = int64(val); }
1352  {
1353  SOP_Node *thissop = cookparms.getNode();
1354  if (!thissop) return getSetlength_lengthoverride();
1355  int64 result;
1356  OP_Utils::evalOpParm(result, thissop, "setlength_lengthoverride", cookparms.getCookTime(), 0);
1357  return Setlength_lengthoverride(result);
1358  }
1359  const UT_StringHolder & getSetlength_lengthcurveattrib() const { return mySetlength_lengthcurveattrib; }
1360  void setSetlength_lengthcurveattrib(const UT_StringHolder & val) { mySetlength_lengthcurveattrib = val; }
1362  {
1363  SOP_Node *thissop = cookparms.getNode();
1364  if (!thissop) return getSetlength_lengthcurveattrib();
1366  OP_Utils::evalOpParm(result, thissop, "setlength_lengthcurveattrib", cookparms.getCookTime(), 0);
1367  return result;
1368  }
1369  const UT_StringHolder & getSetlength_lengthattrib() const { return mySetlength_lengthattrib; }
1370  void setSetlength_lengthattrib(const UT_StringHolder & val) { mySetlength_lengthattrib = val; }
1372  {
1373  SOP_Node *thissop = cookparms.getNode();
1374  if (!thissop) return getSetlength_lengthattrib();
1376  OP_Utils::evalOpParm(result, thissop, "setlength_lengthattrib", cookparms.getCookTime(), 0);
1377  return result;
1378  }
1379  const UT_StringHolder & getSetlength_lengthtexture() const { return mySetlength_lengthtexture; }
1380  void setSetlength_lengthtexture(const UT_StringHolder & val) { mySetlength_lengthtexture = val; }
1382  {
1383  SOP_Node *thissop = cookparms.getNode();
1384  if (!thissop) return getSetlength_lengthtexture();
1386  OP_Utils::evalOpParm(result, thissop, "setlength_lengthtexture", cookparms.getCookTime(), 0);
1387  return result;
1388  }
1389  fpreal64 getSetlength_lengthrandmin() const { return mySetlength_lengthrandmin; }
1390  void setSetlength_lengthrandmin(fpreal64 val) { mySetlength_lengthrandmin = val; }
1392  {
1393  SOP_Node *thissop = cookparms.getNode();
1394  if (!thissop) return getSetlength_lengthrandmin();
1395  fpreal64 result;
1396  OP_Utils::evalOpParm(result, thissop, "setlength_lengthrandmin", cookparms.getCookTime(), 0);
1397  return result;
1398  }
1400  void setSetlength_lengthrandminoverride(Setlength_lengthrandminoverride val) { mySetlength_lengthrandminoverride = int64(val); }
1402  {
1403  SOP_Node *thissop = cookparms.getNode();
1404  if (!thissop) return getSetlength_lengthrandminoverride();
1405  int64 result;
1406  OP_Utils::evalOpParm(result, thissop, "setlength_lengthrandminoverride", cookparms.getCookTime(), 0);
1407  return Setlength_lengthrandminoverride(result);
1408  }
1409  const UT_StringHolder & getSetlength_lengthrandmincurveattrib() const { return mySetlength_lengthrandmincurveattrib; }
1410  void setSetlength_lengthrandmincurveattrib(const UT_StringHolder & val) { mySetlength_lengthrandmincurveattrib = val; }
1412  {
1413  SOP_Node *thissop = cookparms.getNode();
1414  if (!thissop) return getSetlength_lengthrandmincurveattrib();
1416  OP_Utils::evalOpParm(result, thissop, "setlength_lengthrandmincurveattrib", cookparms.getCookTime(), 0);
1417  return result;
1418  }
1419  const UT_StringHolder & getSetlength_lengthrandminattrib() const { return mySetlength_lengthrandminattrib; }
1420  void setSetlength_lengthrandminattrib(const UT_StringHolder & val) { mySetlength_lengthrandminattrib = val; }
1422  {
1423  SOP_Node *thissop = cookparms.getNode();
1424  if (!thissop) return getSetlength_lengthrandminattrib();
1426  OP_Utils::evalOpParm(result, thissop, "setlength_lengthrandminattrib", cookparms.getCookTime(), 0);
1427  return result;
1428  }
1429  const UT_StringHolder & getSetlength_lengthrandmintexture() const { return mySetlength_lengthrandmintexture; }
1430  void setSetlength_lengthrandmintexture(const UT_StringHolder & val) { mySetlength_lengthrandmintexture = val; }
1432  {
1433  SOP_Node *thissop = cookparms.getNode();
1434  if (!thissop) return getSetlength_lengthrandmintexture();
1436  OP_Utils::evalOpParm(result, thissop, "setlength_lengthrandmintexture", cookparms.getCookTime(), 0);
1437  return result;
1438  }
1439  fpreal64 getSetlength_lengthrandmax() const { return mySetlength_lengthrandmax; }
1440  void setSetlength_lengthrandmax(fpreal64 val) { mySetlength_lengthrandmax = val; }
1442  {
1443  SOP_Node *thissop = cookparms.getNode();
1444  if (!thissop) return getSetlength_lengthrandmax();
1445  fpreal64 result;
1446  OP_Utils::evalOpParm(result, thissop, "setlength_lengthrandmax", cookparms.getCookTime(), 0);
1447  return result;
1448  }
1450  void setSetlength_lengthrandmaxoverride(Setlength_lengthrandmaxoverride val) { mySetlength_lengthrandmaxoverride = int64(val); }
1452  {
1453  SOP_Node *thissop = cookparms.getNode();
1454  if (!thissop) return getSetlength_lengthrandmaxoverride();
1455  int64 result;
1456  OP_Utils::evalOpParm(result, thissop, "setlength_lengthrandmaxoverride", cookparms.getCookTime(), 0);
1457  return Setlength_lengthrandmaxoverride(result);
1458  }
1459  const UT_StringHolder & getSetlength_lengthrandmaxcurveattrib() const { return mySetlength_lengthrandmaxcurveattrib; }
1460  void setSetlength_lengthrandmaxcurveattrib(const UT_StringHolder & val) { mySetlength_lengthrandmaxcurveattrib = val; }
1462  {
1463  SOP_Node *thissop = cookparms.getNode();
1464  if (!thissop) return getSetlength_lengthrandmaxcurveattrib();
1466  OP_Utils::evalOpParm(result, thissop, "setlength_lengthrandmaxcurveattrib", cookparms.getCookTime(), 0);
1467  return result;
1468  }
1469  const UT_StringHolder & getSetlength_lengthrandmaxattrib() const { return mySetlength_lengthrandmaxattrib; }
1470  void setSetlength_lengthrandmaxattrib(const UT_StringHolder & val) { mySetlength_lengthrandmaxattrib = val; }
1472  {
1473  SOP_Node *thissop = cookparms.getNode();
1474  if (!thissop) return getSetlength_lengthrandmaxattrib();
1476  OP_Utils::evalOpParm(result, thissop, "setlength_lengthrandmaxattrib", cookparms.getCookTime(), 0);
1477  return result;
1478  }
1479  const UT_StringHolder & getSetlength_lengthrandmaxtexture() const { return mySetlength_lengthrandmaxtexture; }
1480  void setSetlength_lengthrandmaxtexture(const UT_StringHolder & val) { mySetlength_lengthrandmaxtexture = val; }
1482  {
1483  SOP_Node *thissop = cookparms.getNode();
1484  if (!thissop) return getSetlength_lengthrandmaxtexture();
1486  OP_Utils::evalOpParm(result, thissop, "setlength_lengthrandmaxtexture", cookparms.getCookTime(), 0);
1487  return result;
1488  }
1489  fpreal64 getSetlength_scalefactor() const { return mySetlength_scalefactor; }
1490  void setSetlength_scalefactor(fpreal64 val) { mySetlength_scalefactor = val; }
1492  {
1493  SOP_Node *thissop = cookparms.getNode();
1494  if (!thissop) return getSetlength_scalefactor();
1495  fpreal64 result;
1496  OP_Utils::evalOpParm(result, thissop, "setlength_scalefactor", cookparms.getCookTime(), 0);
1497  return result;
1498  }
1500  void setSetlength_scalefactoroverride(Setlength_scalefactoroverride val) { mySetlength_scalefactoroverride = int64(val); }
1502  {
1503  SOP_Node *thissop = cookparms.getNode();
1504  if (!thissop) return getSetlength_scalefactoroverride();
1505  int64 result;
1506  OP_Utils::evalOpParm(result, thissop, "setlength_scalefactoroverride", cookparms.getCookTime(), 0);
1507  return Setlength_scalefactoroverride(result);
1508  }
1509  const UT_StringHolder & getSetlength_scalefactorcurveattrib() const { return mySetlength_scalefactorcurveattrib; }
1510  void setSetlength_scalefactorcurveattrib(const UT_StringHolder & val) { mySetlength_scalefactorcurveattrib = val; }
1512  {
1513  SOP_Node *thissop = cookparms.getNode();
1514  if (!thissop) return getSetlength_scalefactorcurveattrib();
1516  OP_Utils::evalOpParm(result, thissop, "setlength_scalefactorcurveattrib", cookparms.getCookTime(), 0);
1517  return result;
1518  }
1519  const UT_StringHolder & getSetlength_scalefactorattrib() const { return mySetlength_scalefactorattrib; }
1520  void setSetlength_scalefactorattrib(const UT_StringHolder & val) { mySetlength_scalefactorattrib = val; }
1522  {
1523  SOP_Node *thissop = cookparms.getNode();
1524  if (!thissop) return getSetlength_scalefactorattrib();
1526  OP_Utils::evalOpParm(result, thissop, "setlength_scalefactorattrib", cookparms.getCookTime(), 0);
1527  return result;
1528  }
1529  const UT_StringHolder & getSetlength_scalefactortexture() const { return mySetlength_scalefactortexture; }
1530  void setSetlength_scalefactortexture(const UT_StringHolder & val) { mySetlength_scalefactortexture = val; }
1532  {
1533  SOP_Node *thissop = cookparms.getNode();
1534  if (!thissop) return getSetlength_scalefactortexture();
1536  OP_Utils::evalOpParm(result, thissop, "setlength_scalefactortexture", cookparms.getCookTime(), 0);
1537  return result;
1538  }
1539  fpreal64 getSetlength_scalefactorrandmin() const { return mySetlength_scalefactorrandmin; }
1540  void setSetlength_scalefactorrandmin(fpreal64 val) { mySetlength_scalefactorrandmin = val; }
1542  {
1543  SOP_Node *thissop = cookparms.getNode();
1544  if (!thissop) return getSetlength_scalefactorrandmin();
1545  fpreal64 result;
1546  OP_Utils::evalOpParm(result, thissop, "setlength_scalefactorrandmin", cookparms.getCookTime(), 0);
1547  return result;
1548  }
1550  void setSetlength_scalefactorrandminoverride(Setlength_scalefactorrandminoverride val) { mySetlength_scalefactorrandminoverride = int64(val); }
1552  {
1553  SOP_Node *thissop = cookparms.getNode();
1554  if (!thissop) return getSetlength_scalefactorrandminoverride();
1555  int64 result;
1556  OP_Utils::evalOpParm(result, thissop, "setlength_scalefactorrandminoverride", cookparms.getCookTime(), 0);
1557  return Setlength_scalefactorrandminoverride(result);
1558  }
1559  const UT_StringHolder & getSetlength_scalefactorrandmincurveattrib() const { return mySetlength_scalefactorrandmincurveattrib; }
1560  void setSetlength_scalefactorrandmincurveattrib(const UT_StringHolder & val) { mySetlength_scalefactorrandmincurveattrib = val; }
1562  {
1563  SOP_Node *thissop = cookparms.getNode();
1564  if (!thissop) return getSetlength_scalefactorrandmincurveattrib();
1566  OP_Utils::evalOpParm(result, thissop, "setlength_scalefactorrandmincurveattrib", cookparms.getCookTime(), 0);
1567  return result;
1568  }
1569  const UT_StringHolder & getSetlength_scalefactorrandminattrib() const { return mySetlength_scalefactorrandminattrib; }
1570  void setSetlength_scalefactorrandminattrib(const UT_StringHolder & val) { mySetlength_scalefactorrandminattrib = val; }
1572  {
1573  SOP_Node *thissop = cookparms.getNode();
1574  if (!thissop) return getSetlength_scalefactorrandminattrib();
1576  OP_Utils::evalOpParm(result, thissop, "setlength_scalefactorrandminattrib", cookparms.getCookTime(), 0);
1577  return result;
1578  }
1579  const UT_StringHolder & getSetlength_scalefactorrandmintexture() const { return mySetlength_scalefactorrandmintexture; }
1580  void setSetlength_scalefactorrandmintexture(const UT_StringHolder & val) { mySetlength_scalefactorrandmintexture = val; }
1582  {
1583  SOP_Node *thissop = cookparms.getNode();
1584  if (!thissop) return getSetlength_scalefactorrandmintexture();
1586  OP_Utils::evalOpParm(result, thissop, "setlength_scalefactorrandmintexture", cookparms.getCookTime(), 0);
1587  return result;
1588  }
1589  fpreal64 getSetlength_scalefactorrandmax() const { return mySetlength_scalefactorrandmax; }
1590  void setSetlength_scalefactorrandmax(fpreal64 val) { mySetlength_scalefactorrandmax = val; }
1592  {
1593  SOP_Node *thissop = cookparms.getNode();
1594  if (!thissop) return getSetlength_scalefactorrandmax();
1595  fpreal64 result;
1596  OP_Utils::evalOpParm(result, thissop, "setlength_scalefactorrandmax", cookparms.getCookTime(), 0);
1597  return result;
1598  }
1600  void setSetlength_scalefactorrandmaxoverride(Setlength_scalefactorrandmaxoverride val) { mySetlength_scalefactorrandmaxoverride = int64(val); }
1602  {
1603  SOP_Node *thissop = cookparms.getNode();
1604  if (!thissop) return getSetlength_scalefactorrandmaxoverride();
1605  int64 result;
1606  OP_Utils::evalOpParm(result, thissop, "setlength_scalefactorrandmaxoverride", cookparms.getCookTime(), 0);
1607  return Setlength_scalefactorrandmaxoverride(result);
1608  }
1609  const UT_StringHolder & getSetlength_scalefactorrandmaxcurveattrib() const { return mySetlength_scalefactorrandmaxcurveattrib; }
1610  void setSetlength_scalefactorrandmaxcurveattrib(const UT_StringHolder & val) { mySetlength_scalefactorrandmaxcurveattrib = val; }
1612  {
1613  SOP_Node *thissop = cookparms.getNode();
1614  if (!thissop) return getSetlength_scalefactorrandmaxcurveattrib();
1616  OP_Utils::evalOpParm(result, thissop, "setlength_scalefactorrandmaxcurveattrib", cookparms.getCookTime(), 0);
1617  return result;
1618  }
1619  const UT_StringHolder & getSetlength_scalefactorrandmaxattrib() const { return mySetlength_scalefactorrandmaxattrib; }
1620  void setSetlength_scalefactorrandmaxattrib(const UT_StringHolder & val) { mySetlength_scalefactorrandmaxattrib = val; }
1622  {
1623  SOP_Node *thissop = cookparms.getNode();
1624  if (!thissop) return getSetlength_scalefactorrandmaxattrib();
1626  OP_Utils::evalOpParm(result, thissop, "setlength_scalefactorrandmaxattrib", cookparms.getCookTime(), 0);
1627  return result;
1628  }
1629  const UT_StringHolder & getSetlength_scalefactorrandmaxtexture() const { return mySetlength_scalefactorrandmaxtexture; }
1630  void setSetlength_scalefactorrandmaxtexture(const UT_StringHolder & val) { mySetlength_scalefactorrandmaxtexture = val; }
1632  {
1633  SOP_Node *thissop = cookparms.getNode();
1634  if (!thissop) return getSetlength_scalefactorrandmaxtexture();
1636  OP_Utils::evalOpParm(result, thissop, "setlength_scalefactorrandmaxtexture", cookparms.getCookTime(), 0);
1637  return result;
1638  }
1639  bool getSetlength_cullzerolen() const { return mySetlength_cullzerolen; }
1640  void setSetlength_cullzerolen(bool val) { mySetlength_cullzerolen = val; }
1642  {
1643  SOP_Node *thissop = cookparms.getNode();
1644  if (!thissop) return getSetlength_cullzerolen();
1645  bool result;
1646  OP_Utils::evalOpParm(result, thissop, "setlength_cullzerolen", cookparms.getCookTime(), 0);
1647  return result;
1648  }
1649  fpreal64 getSetlength_cullthreshold() const { return mySetlength_cullthreshold; }
1650  void setSetlength_cullthreshold(fpreal64 val) { mySetlength_cullthreshold = val; }
1652  {
1653  SOP_Node *thissop = cookparms.getNode();
1654  if (!thissop) return getSetlength_cullthreshold();
1655  fpreal64 result;
1656  OP_Utils::evalOpParm(result, thissop, "setlength_cullthreshold", cookparms.getCookTime(), 0);
1657  return result;
1658  }
1659 
1660 private:
1661  UT_StringHolder myUvattrib;
1662  int64 myGrouptype;
1663  UT_StringHolder myGroup;
1664  fpreal64 mySeed;
1665  bool myVismasks;
1666  fpreal64 myBlend;
1667  int64 myBlendoverride;
1668  UT_StringHolder myBlendcurveattrib;
1669  UT_StringHolder myBlendattrib;
1670  UT_StringHolder myBlendtexture;
1671  int64 myOp;
1672  int64 mySetlength_mode;
1673  int64 mySetlength_method;
1674  fpreal64 mySetlength_blend;
1675  bool mySetlength_randomize;
1676  fpreal64 mySetlength_length;
1677  int64 mySetlength_lengthoverride;
1678  UT_StringHolder mySetlength_lengthcurveattrib;
1679  UT_StringHolder mySetlength_lengthattrib;
1680  UT_StringHolder mySetlength_lengthtexture;
1681  fpreal64 mySetlength_lengthrandmin;
1682  int64 mySetlength_lengthrandminoverride;
1683  UT_StringHolder mySetlength_lengthrandmincurveattrib;
1684  UT_StringHolder mySetlength_lengthrandminattrib;
1685  UT_StringHolder mySetlength_lengthrandmintexture;
1686  fpreal64 mySetlength_lengthrandmax;
1687  int64 mySetlength_lengthrandmaxoverride;
1688  UT_StringHolder mySetlength_lengthrandmaxcurveattrib;
1689  UT_StringHolder mySetlength_lengthrandmaxattrib;
1690  UT_StringHolder mySetlength_lengthrandmaxtexture;
1691  fpreal64 mySetlength_scalefactor;
1692  int64 mySetlength_scalefactoroverride;
1693  UT_StringHolder mySetlength_scalefactorcurveattrib;
1694  UT_StringHolder mySetlength_scalefactorattrib;
1695  UT_StringHolder mySetlength_scalefactortexture;
1696  fpreal64 mySetlength_scalefactorrandmin;
1697  int64 mySetlength_scalefactorrandminoverride;
1698  UT_StringHolder mySetlength_scalefactorrandmincurveattrib;
1699  UT_StringHolder mySetlength_scalefactorrandminattrib;
1700  UT_StringHolder mySetlength_scalefactorrandmintexture;
1701  fpreal64 mySetlength_scalefactorrandmax;
1702  int64 mySetlength_scalefactorrandmaxoverride;
1703  UT_StringHolder mySetlength_scalefactorrandmaxcurveattrib;
1704  UT_StringHolder mySetlength_scalefactorrandmaxattrib;
1705  UT_StringHolder mySetlength_scalefactorrandmaxtexture;
1706  bool mySetlength_cullzerolen;
1707  fpreal64 mySetlength_cullthreshold;
1708 
1709 };
fpreal64 opSeed(const SOP_NodeVerb::CookParms &cookparms) const
GLdouble s
Definition: glew.h:1390
static void saveData(std::ostream &os, int64 v)
fpreal64 opSetlength_lengthrandmax(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opSetlength_scalefactortexture(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getSetlength_lengthrandmaxcurveattrib() const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
const UT_StringHolder & getSetlength_scalefactorrandminattrib() const
UT_StringHolder opSetlength_scalefactorrandmaxattrib(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getBlendattrib() const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
UT_StringHolder opSetlength_scalefactorrandmaxcurveattrib(const SOP_NodeVerb::CookParms &cookparms) const
exint nodeIdx() const
Definition: SOP_NodeVerb.h:114
void setSetlength_lengthrandmaxcurveattrib(const UT_StringHolder &val)
GLenum src
Definition: glew.h:2410
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:640
static void loadData(UT_IStream &is, UT_Vector3I &v)
static void loadData(UT_IStream &is, UT_Matrix3D &v)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
fpreal64 opBlend(const SOP_NodeVerb::CookParms &cookparms) const
void setBlendcurveattrib(const UT_StringHolder &val)
UT_StringHolder opSetlength_lengthcurveattrib(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector4I &v)
void setSetlength_lengthrandmaxoverride(Setlength_lengthrandmaxoverride val)
fpreal64 opSetlength_scalefactorrandmin(const SOP_NodeVerb::CookParms &cookparms) const
void setSetlength_lengthrandminattrib(const UT_StringHolder &val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
void setSetlength_lengthrandmintexture(const UT_StringHolder &val)
void setSetlength_scalefactorrandmax(fpreal64 val)
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
const UT_StringHolder & getSetlength_scalefactorcurveattrib() const
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
fpreal getTime() const
Definition: OP_Context.h:60
static void saveData(std::ostream &os, UT_Matrix4D v)
GLuint const GLfloat * val
Definition: glew.h:2794
bool operator!=(const SOP_GuideProcessCoreParms &src) const
void setSetlength_scalefactorrandmaxoverride(Setlength_scalefactorrandmaxoverride val)
static void saveData(std::ostream &os, UT_StringHolder s)
void setSetlength_scalefactorrandmintexture(const UT_StringHolder &val)
Setlength_lengthrandmaxoverride getSetlength_lengthrandmaxoverride() const
int64 exint
Definition: SYS_Types.h:125
void setSetlength_scalefactorrandminattrib(const UT_StringHolder &val)
UT_StringHolder opSetlength_lengthrandmintexture(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE const char * buffer() const
static void loadData(UT_IStream &is, UT_StringHolder &v)
const SOP_GraphProxy * graph() const
Definition: SOP_NodeVerb.h:113
static void saveData(std::ostream &os, UT_Vector3D v)
Setlength_method getSetlength_method() const
Blendoverride opBlendoverride(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opSetlength_scalefactorrandmax(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getSetlength_lengthattrib() const
An output stream object that owns its own string buffer storage.
Blendoverride getBlendoverride() const
fpreal64 getSetlength_scalefactorrandmax() const
void loadFromOpSubclass(const LoadParms &loadparms) override
UT_StringHolder opSetlength_lengthrandmaxcurveattrib(const SOP_NodeVerb::CookParms &cookparms) const
const GLdouble * v
Definition: glew.h:1391
UT_StringHolder opSetlength_scalefactorrandmaxtexture(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opSetlength_lengthattrib(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
void setSetlength_lengthrandmincurveattrib(const UT_StringHolder &val)
static void saveData(std::ostream &os, UT_Matrix3D v)
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
void setSetlength_scalefactorrandmincurveattrib(const UT_StringHolder &val)
void setSetlength_lengthattrib(const UT_StringHolder &val)
void setSetlength_scalefactoroverride(Setlength_scalefactoroverride val)
UT_StringHolder opSetlength_lengthrandmaxtexture(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opSetlength_scalefactorrandmincurveattrib(const SOP_NodeVerb::CookParms &cookparms) const
double fpreal64
Definition: SYS_Types.h:201
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
UT_StringHolder opSetlength_lengthtexture(const SOP_NodeVerb::CookParms &cookparms) const
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
void setSetlength_lengthrandminoverride(Setlength_lengthrandminoverride val)
void buildFromOp(const SOP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
static void saveData(std::ostream &os, UT_Vector4D v)
UT_StringHolder opSetlength_lengthrandminattrib(const SOP_NodeVerb::CookParms &cookparms) const
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
Setlength_scalefactorrandminoverride opSetlength_scalefactorrandminoverride(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector3D &v)
const UT_StringHolder & getSetlength_lengthrandmincurveattrib() const
void setSetlength_lengthrandmaxattrib(const UT_StringHolder &val)
void copyFrom(const SOP_NodeParms *src) override
static void loadData(UT_IStream &is, fpreal64 &v)
fpreal64 getSetlength_scalefactorrandmin() const
SYS_FORCE_INLINE T & y()
Definition: UT_Vector3.h:513
static void saveData(std::ostream &os, bool v)
Setlength_scalefactorrandmaxoverride opSetlength_scalefactorrandmaxoverride(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
Setlength_lengthrandminoverride getSetlength_lengthrandminoverride() const
exint length() const
UT_StringHolder opSetlength_scalefactorattrib(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:28
const UT_StringHolder & getSetlength_scalefactorrandmaxcurveattrib() const
const UT_StringHolder & getSetlength_lengthrandmaxattrib() const
const UT_StringHolder & getSetlength_lengthrandmintexture() const
void setSetlength_scalefactorcurveattrib(const UT_StringHolder &val)
GLint GLenum GLsizei GLint GLsizei const void * data
Definition: glew.h:1379
const UT_StringHolder & getSetlength_scalefactorrandmaxtexture() const
Setlength_mode getSetlength_mode() const
Setlength_scalefactoroverride getSetlength_scalefactoroverride() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
SYS_FORCE_INLINE T & z()
Definition: UT_Vector3.h:515
void setSetlength_mode(Setlength_mode val)
Setlength_mode opSetlength_mode(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
Setlength_lengthrandmaxoverride opSetlength_lengthrandmaxoverride(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opSetlength_lengthrandmaxattrib(const SOP_NodeVerb::CookParms &cookparms) const
const GLfloat * c
Definition: glew.h:16296
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
static void saveData(std::ostream &os, UT_Matrix2D v)
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
long long int64
Definition: SYS_Types.h:116
Setlength_scalefactoroverride opSetlength_scalefactoroverride(const SOP_NodeVerb::CookParms &cookparms) const
bool opSetlength_randomize(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
const UT_StringHolder & getSetlength_lengthcurveattrib() const
void setSetlength_scalefactorrandmaxcurveattrib(const UT_StringHolder &val)
void setSetlength_scalefactorrandmin(fpreal64 val)
static void loadData(UT_IStream &is, UT_Vector4D &v)
static void loadData(UT_IStream &is, UT_Vector2D &v)
void setBlendtexture(const UT_StringHolder &val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
fpreal64 opSetlength_blend(const SOP_NodeVerb::CookParms &cookparms) const
void save(std::ostream &os) const
const UT_StringHolder & getSetlength_lengthrandminattrib() const
void setBlendoverride(Blendoverride val)
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:294
const UT_StringHolder & getSetlength_lengthtexture() const
Grouptype opGrouptype(const SOP_NodeVerb::CookParms &cookparms) const
GT_API const UT_StringHolder version
DEP_MicroNode * depnode() const
Definition: SOP_NodeVerb.h:121
static void loadData(UT_IStream &is, bool &v)
UT_StringHolder opSetlength_scalefactorrandminattrib(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getSetlength_scalefactorattrib() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
void setGroup(const UT_StringHolder &val)
void setSetlength_scalefactortexture(const UT_StringHolder &val)
static void saveData(std::ostream &os, fpreal64 v)
Setlength_lengthoverride getSetlength_lengthoverride() const
Setlength_lengthrandminoverride opSetlength_lengthrandminoverride(const SOP_NodeVerb::CookParms &cookparms) const
Setlength_lengthoverride opSetlength_lengthoverride(const SOP_NodeVerb::CookParms &cookparms) const
Setlength_scalefactorrandminoverride getSetlength_scalefactorrandminoverride() const
void setSetlength_lengthcurveattrib(const UT_StringHolder &val)
void setSetlength_scalefactorrandmaxtexture(const UT_StringHolder &val)
const UT_StringHolder & getSetlength_scalefactortexture() const
bool operator==(const SOP_GuideProcessCoreParms &src) const
void setSetlength_lengthoverride(Setlength_lengthoverride val)
const UT_StringHolder & getSetlength_scalefactorrandmincurveattrib() const
const UT_StringHolder & getSetlength_scalefactorrandmaxattrib() const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
void setSetlength_scalefactorattrib(const UT_StringHolder &val)
void setSetlength_method(Setlength_method val)
fpreal64 fpreal
Definition: SYS_Types.h:277
UT_StringHolder opSetlength_scalefactorrandmintexture(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opBlendattrib(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getUvattrib() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
Utility class for containing a color ramp.
Definition: UT_Ramp.h:84
fpreal64 opSetlength_length(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, int64 &v)
GLdouble GLdouble GLdouble r
Definition: glew.h:1406
static void loadData(UT_IStream &is, UT_Vector2I &v)
fpreal64 opSetlength_cullthreshold(const SOP_NodeVerb::CookParms &cookparms) const
#define SOP_API
Definition: SOP_API.h:10
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
Op opOp(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
void setSetlength_scalefactorrandmaxattrib(const UT_StringHolder &val)
const UT_StringHolder & getSetlength_scalefactorrandmintexture() const
UT_StringHolder opSetlength_lengthrandmincurveattrib(const SOP_NodeVerb::CookParms &cookparms) const
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
const UT_StringHolder & getBlendcurveattrib() const
static void loadData(UT_IStream &is, UT_Matrix4D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
SYS_FORCE_INLINE T & x()
Definition: UT_Vector3.h:511
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:654
GLuint64EXT * result
Definition: glew.h:14007
void setBlendattrib(const UT_StringHolder &val)
Setlength_method opSetlength_method(const SOP_NodeVerb::CookParms &cookparms) const
void setUvattrib(const UT_StringHolder &val)
const char * findChar(int c) const
Definition: UT_String.h:1367
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:135
ParmType getNestParmType(TempIndex fieldnum) const override
UT_StringHolder opBlendcurveattrib(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getSetlength_lengthrandmaxtexture() const
const UT_StringHolder & getBlendtexture() const
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
Setlength_scalefactorrandmaxoverride getSetlength_scalefactorrandmaxoverride() const
UT_StringHolder opBlendtexture(const SOP_NodeVerb::CookParms &cookparms) const
void setSetlength_scalefactorrandminoverride(Setlength_scalefactorrandminoverride val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
fpreal64 opSetlength_scalefactor(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opUvattrib(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opSetlength_scalefactorcurveattrib(const SOP_NodeVerb::CookParms &cookparms) const
GLsizei const GLfloat * value
Definition: glew.h:1849
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
const OP_Context & context() const
Definition: SOP_NodeVerb.h:119
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:89
void setSetlength_lengthrandmaxtexture(const UT_StringHolder &val)
SYS_FORCE_INLINE bool isstring() const
const char * getNestParmName(TempIndex fieldnum) const override
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
bool opSetlength_cullzerolen(const SOP_NodeVerb::CookParms &cookparms) const
type
Definition: core.h:528
void setSetlength_lengthtexture(const UT_StringHolder &val)
const UT_StringHolder & getGroup() const
bool opVismasks(const SOP_NodeVerb::CookParms &cookparms) const
exint getNestNumParms(TempIndex idx) const override
static void saveData(std::ostream &os, UT_Vector2D v)
fpreal64 opSetlength_lengthrandmin(const SOP_NodeVerb::CookParms &cookparms) const