HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_VolumeVisualization.proto.h
Go to the documentation of this file.
1 /* Automagically Generated by generate_proto.py
2  * Do not Edit
3  */
4 #pragma once
5 
6 #include <SOP/SOP_API.h>
7 #include <SOP/SOP_NodeVerb.h>
8 #include <SOP/SOP_GraphProxy.h>
9 
10 #include <OP/OP_Utils.h>
11 #include <PRM/PRM_Parm.h>
12 #include <UT/UT_IStream.h>
13 #include <UT/UT_NTStreamUtil.h>
14 #include <UT/UT_Ramp.h>
15 #include <UT/UT_SharedPtr.h>
16 #include <UT/UT_StringHolder.h>
17 #include <UT/UT_StringStream.h>
18 #include <UT/UT_VectorTypes.h>
19 #include <UT/UT_EnvControl.h>
20 #include <SYS/SYS_Types.h>
21 
22 class DEP_MicroNode;
23 namespace SOP_VolumeVisualizationEnums
24 {
25  enum class VisMode
26  {
27  NONE = 0,
28  SMOKE,
30  };
31  enum class Densityrampmode
32  {
33  NONE = 0,
34  CLAMP,
35  PERIODIC
36  };
37  enum class Cdrampmode
38  {
39  NONE = 0,
40  CLAMP,
41  PERIODIC
42  };
43  enum class Emitrampmode
44  {
45  NONE = 0,
46  CLAMP,
47  PERIODIC
48  };
49  enum class Emitcdrampmode
50  {
51  NONE = 0,
52  CLAMP,
53  PERIODIC,
54  PHYSICAL,
55  PLANCK
56  };
57 }
58 
59 
61 {
62 public:
63  static int version() { return 1; }
64 
66  {
67  myVisMode = 1;
68  myRangemin = 0;
69  myRangemax = 1;
70  myDensityscale = 1;
71  myShadowscale = 1;
72  mySetambientcolors = false;
73  myAmbientexposed = UT_Vector3D(1,1,1);
74  myAmbientoccluded = UT_Vector3D(0,0,0);
75  mySetambientshadows = false;
76  myAmbientshadows = 1;
77  mySetshadowcolor = false;
78  myShadowcolor = UT_Vector3D(1,1,1);
79  mySetmaxres = false;
80  myMaxres = 128;
81  mySetambientmapsize = false;
82  myAmbientmapsize = 0.5;
83  mySetambientsteprate = false;
84  myAmbientsteprate = 4;
85  myDensityfield = "density"_UTsh;
86  myDensityrampmode = 1;
87  myDensityramp = UT_SharedPtr<UT_Ramp>(0);
88  myCdfield = ""_UTsh;
89  myCdrangeoverride = false;
90  myCdrange = UT_Vector2D(0,1);
91  myCdrampmode = 1;
92  myCdramp = UT_SharedPtr<UT_Ramp>(0);
93  myEmitscale = 0;
94  myEmitfield = ""_UTsh;
95  myEmitrangeoverride = false;
96  myEmitrange = UT_Vector2D(0,1);
97  myEmitrampmode = 1;
98  myEmitramp = UT_SharedPtr<UT_Ramp>(0);
99  myEmitcdfield = ""_UTsh;
100  myEmitcdrampmode = 1;
101  myEmitcdramp = UT_SharedPtr<UT_Ramp>(0);
102  myEmitcdfieldscale = 1;
103  myEmitcdtemperature0 = 0;
104  myEmitcdtemperature = 5000;
105  myEmitcdtonemap = true;
106  myEmitcdadaptation = 0.15;
107  myEmitcdburn = 0;
108  myEnablescatter = false;
109  myExtinctionratio = 1;
110  myScatteringiter = 25;
111  myEmitcdrangeoverride = false;
112  myEmitcdrange = UT_Vector2D(0,1);
113 
114  }
115 
119  SOP_VolumeVisualizationParms &operator=(SOP_VolumeVisualizationParms &&) noexcept = default;
120 
122 
124  {
125  if (myVisMode != src.myVisMode) return false;
126  if (myRangemin != src.myRangemin) return false;
127  if (myRangemax != src.myRangemax) return false;
128  if (myDensityscale != src.myDensityscale) return false;
129  if (myShadowscale != src.myShadowscale) return false;
130  if (mySetambientcolors != src.mySetambientcolors) return false;
131  if (myAmbientexposed != src.myAmbientexposed) return false;
132  if (myAmbientoccluded != src.myAmbientoccluded) return false;
133  if (mySetambientshadows != src.mySetambientshadows) return false;
134  if (myAmbientshadows != src.myAmbientshadows) return false;
135  if (mySetshadowcolor != src.mySetshadowcolor) return false;
136  if (myShadowcolor != src.myShadowcolor) return false;
137  if (mySetmaxres != src.mySetmaxres) return false;
138  if (myMaxres != src.myMaxres) return false;
139  if (mySetambientmapsize != src.mySetambientmapsize) return false;
140  if (myAmbientmapsize != src.myAmbientmapsize) return false;
141  if (mySetambientsteprate != src.mySetambientsteprate) return false;
142  if (myAmbientsteprate != src.myAmbientsteprate) return false;
143  if (myDensityfield != src.myDensityfield) return false;
144  if (myDensityrampmode != src.myDensityrampmode) return false;
145  if (myDensityramp != src.myDensityramp)
146  { if (!myDensityramp || !src.myDensityramp || !(*myDensityramp == *src.myDensityramp)) return false; }
147  if (myCdfield != src.myCdfield) return false;
148  if (myCdrangeoverride != src.myCdrangeoverride) return false;
149  if (myCdrange != src.myCdrange) return false;
150  if (myCdrampmode != src.myCdrampmode) return false;
151  if (myCdramp != src.myCdramp)
152  { if (!myCdramp || !src.myCdramp || !(*myCdramp == *src.myCdramp)) return false; }
153  if (myEmitscale != src.myEmitscale) return false;
154  if (myEmitfield != src.myEmitfield) return false;
155  if (myEmitrangeoverride != src.myEmitrangeoverride) return false;
156  if (myEmitrange != src.myEmitrange) return false;
157  if (myEmitrampmode != src.myEmitrampmode) return false;
158  if (myEmitramp != src.myEmitramp)
159  { if (!myEmitramp || !src.myEmitramp || !(*myEmitramp == *src.myEmitramp)) return false; }
160  if (myEmitcdfield != src.myEmitcdfield) return false;
161  if (myEmitcdrampmode != src.myEmitcdrampmode) return false;
162  if (myEmitcdramp != src.myEmitcdramp)
163  { if (!myEmitcdramp || !src.myEmitcdramp || !(*myEmitcdramp == *src.myEmitcdramp)) return false; }
164  if (myEmitcdfieldscale != src.myEmitcdfieldscale) return false;
165  if (myEmitcdtemperature0 != src.myEmitcdtemperature0) return false;
166  if (myEmitcdtemperature != src.myEmitcdtemperature) return false;
167  if (myEmitcdtonemap != src.myEmitcdtonemap) return false;
168  if (myEmitcdadaptation != src.myEmitcdadaptation) return false;
169  if (myEmitcdburn != src.myEmitcdburn) return false;
170  if (myEnablescatter != src.myEnablescatter) return false;
171  if (myExtinctionratio != src.myExtinctionratio) return false;
172  if (myScatteringiter != src.myScatteringiter) return false;
173  if (myEmitcdrangeoverride != src.myEmitcdrangeoverride) return false;
174  if (myEmitcdrange != src.myEmitcdrange) return false;
175 
176  return true;
177  }
179  {
180  return !operator==(src);
181  }
187 
188 
189 
190  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
191  {
192  myVisMode = 1;
193  if (true)
194  graph->evalOpParm(myVisMode, nodeidx, "vismode", time, 0);
195  myRangemin = 0;
196  if (true)
197  graph->evalOpParm(myRangemin, nodeidx, "rangemin", time, 0);
198  myRangemax = 1;
199  if (true)
200  graph->evalOpParm(myRangemax, nodeidx, "rangemax", time, 0);
201  myDensityscale = 1;
202  if (true)
203  graph->evalOpParm(myDensityscale, nodeidx, "densityscale", time, 0);
204  myShadowscale = 1;
205  if (true)
206  graph->evalOpParm(myShadowscale, nodeidx, "shadowscale", time, 0);
207  mySetambientcolors = false;
208  if (true)
209  graph->evalOpParm(mySetambientcolors, nodeidx, "setambientcolors", time, 0);
210  myAmbientexposed = UT_Vector3D(1,1,1);
211  if (true && ( (true&&!(((getSetambientcolors()==0)))) ) )
212  graph->evalOpParm(myAmbientexposed, nodeidx, "ambientexposed", time, 0);
213  myAmbientoccluded = UT_Vector3D(0,0,0);
214  if (true && ( (true&&!(((getSetambientcolors()==0)))) ) )
215  graph->evalOpParm(myAmbientoccluded, nodeidx, "ambientoccluded", time, 0);
216  mySetambientshadows = false;
217  if (true)
218  graph->evalOpParm(mySetambientshadows, nodeidx, "setambientshadows", time, 0);
219  myAmbientshadows = 1;
220  if (true && ( (true&&!(((getSetambientshadows()==0)))) ) )
221  graph->evalOpParm(myAmbientshadows, nodeidx, "ambientshadows", time, 0);
222  mySetshadowcolor = false;
223  if (true)
224  graph->evalOpParm(mySetshadowcolor, nodeidx, "setshadowcolor", time, 0);
225  myShadowcolor = UT_Vector3D(1,1,1);
226  if (true && ( (true&&!(((getSetshadowcolor()==0)))) ) )
227  graph->evalOpParm(myShadowcolor, nodeidx, "shadowcolor", time, 0);
228  mySetmaxres = false;
229  if (true)
230  graph->evalOpParm(mySetmaxres, nodeidx, "setmaxres", time, 0);
231  myMaxres = 128;
232  if (true && ( (true&&!(((getSetmaxres()==0)))) ) )
233  graph->evalOpParm(myMaxres, nodeidx, "maxres", time, 0);
234  mySetambientmapsize = false;
235  if (true)
236  graph->evalOpParm(mySetambientmapsize, nodeidx, "setambientmapsize", time, 0);
237  myAmbientmapsize = 0.5;
238  if (true && ( (true&&!(((getSetambientmapsize()==0)))) ) )
239  graph->evalOpParm(myAmbientmapsize, nodeidx, "ambientmapsize", time, 0);
240  mySetambientsteprate = false;
241  if (true)
242  graph->evalOpParm(mySetambientsteprate, nodeidx, "setambientsteprate", time, 0);
243  myAmbientsteprate = 4;
244  if (true && ( (true&&!(((getSetambientsteprate()==0)))) ) )
245  graph->evalOpParm(myAmbientsteprate, nodeidx, "ambientsteprate", time, 0);
246  myDensityfield = "density"_UTsh;
247  if (true)
248  graph->evalOpParm(myDensityfield, nodeidx, "densityfield", time, 0);
249  myDensityrampmode = 1;
250  if (true)
251  graph->evalOpParm(myDensityrampmode, nodeidx, "densityrampmode", time, 0);
252  myDensityramp = UT_SharedPtr<UT_Ramp>(0);
253  if (true && ( (true&&!(((int64(getDensityrampmode())==0)))) ) )
254  graph->evalOpParm(myDensityramp, nodeidx, "densityramp", time, 0);
255  myCdfield = ""_UTsh;
256  if (true)
257  graph->evalOpParm(myCdfield, nodeidx, "cdfield", time, 0);
258  myCdrangeoverride = false;
259  if (true)
260  graph->evalOpParm(myCdrangeoverride, nodeidx, "cdrangeoverride", time, 0);
261  myCdrange = UT_Vector2D(0,1);
262  if (true && ( (true&&!(((getCdrangeoverride()==0)))) ) )
263  graph->evalOpParm(myCdrange, nodeidx, "cdrange", time, 0);
264  myCdrampmode = 1;
265  if (true)
266  graph->evalOpParm(myCdrampmode, nodeidx, "cdrampmode", time, 0);
267  myCdramp = UT_SharedPtr<UT_Ramp>(0);
268  if (true && ( (true&&!(((int64(getCdrampmode())==0)))) ) )
269  graph->evalOpParm(myCdramp, nodeidx, "cdramp", time, 0);
270  myEmitscale = 0;
271  if (true)
272  graph->evalOpParm(myEmitscale, nodeidx, "emitscale", time, 0);
273  myEmitfield = ""_UTsh;
274  if (true)
275  graph->evalOpParm(myEmitfield, nodeidx, "emitfield", time, 0);
276  myEmitrangeoverride = false;
277  if (true)
278  graph->evalOpParm(myEmitrangeoverride, nodeidx, "emitrangeoverride", time, 0);
279  myEmitrange = UT_Vector2D(0,1);
280  if (true && ( (true&&!(((getEmitrangeoverride()==0)))) ) )
281  graph->evalOpParm(myEmitrange, nodeidx, "emitrange", time, 0);
282  myEmitrampmode = 1;
283  if (true)
284  graph->evalOpParm(myEmitrampmode, nodeidx, "emitrampmode", time, 0);
285  myEmitramp = UT_SharedPtr<UT_Ramp>(0);
286  if (true && ( (true&&!(((int64(getEmitrampmode())==0)))) ) )
287  graph->evalOpParm(myEmitramp, nodeidx, "emitramp", time, 0);
288  myEmitcdfield = ""_UTsh;
289  if (true)
290  graph->evalOpParm(myEmitcdfield, nodeidx, "emitcdfield", time, 0);
291  myEmitcdrampmode = 1;
292  if (true)
293  graph->evalOpParm(myEmitcdrampmode, nodeidx, "emitcdrampmode", time, 0);
294  myEmitcdramp = UT_SharedPtr<UT_Ramp>(0);
295  if (true && ( (true&&!(((int64(getEmitcdrampmode())==0))||((int64(getEmitcdrampmode())==3))||((int64(getEmitcdrampmode())==4)))) ) )
296  graph->evalOpParm(myEmitcdramp, nodeidx, "emitcdramp", time, 0);
297  myEmitcdfieldscale = 1;
298  if (true && ( (true&&!(((int64(getEmitcdrampmode())!=3)&&(int64(getEmitcdrampmode())!=4)))) ) )
299  graph->evalOpParm(myEmitcdfieldscale, nodeidx, "emitcdfieldscale", time, 0);
300  myEmitcdtemperature0 = 0;
301  if (true && ( (true&&!(((int64(getEmitcdrampmode())!=3)&&(int64(getEmitcdrampmode())!=4)))) ) )
302  graph->evalOpParm(myEmitcdtemperature0, nodeidx, "emitcdtemperature0", time, 0);
303  myEmitcdtemperature = 5000;
304  if (true && ( (true&&!(((int64(getEmitcdrampmode())!=3)&&(int64(getEmitcdrampmode())!=4)))) ) )
305  graph->evalOpParm(myEmitcdtemperature, nodeidx, "emitcdtemperature", time, 0);
306  myEmitcdtonemap = true;
307  if (true && ( (true&&!(((int64(getEmitcdrampmode())!=3)))) ) )
308  graph->evalOpParm(myEmitcdtonemap, nodeidx, "emitcdtonemap", time, 0);
309  myEmitcdadaptation = 0.15;
310  if (true && ( (true&&!(((int64(getEmitcdrampmode())!=3))||((getEmitcdtonemap()==0)))) ) )
311  graph->evalOpParm(myEmitcdadaptation, nodeidx, "emitcdadaptation", time, 0);
312  myEmitcdburn = 0;
313  if (true && ( (true&&!(((int64(getEmitcdrampmode())!=3))||((getEmitcdtonemap()==0)))) ) )
314  graph->evalOpParm(myEmitcdburn, nodeidx, "emitcdburn", time, 0);
315  myEnablescatter = false;
316  if (true)
317  graph->evalOpParm(myEnablescatter, nodeidx, "enablescatter", time, 0);
318  myExtinctionratio = 1;
319  if (true && ( (true&&!(((getEnablescatter()==0)))) ) )
320  graph->evalOpParm(myExtinctionratio, nodeidx, "extinctionratio", time, 0);
321  myScatteringiter = 25;
322  if (true && ( (true&&!(((getEnablescatter()==0)))) ) )
323  graph->evalOpParm(myScatteringiter, nodeidx, "scatteringiter", time, 0);
324  myEmitcdrangeoverride = false;
325  if (true && ( (true&&!(((int64(getEmitcdrampmode())==3))||((int64(getEmitcdrampmode())==4)))) ) )
326  graph->evalOpParm(myEmitcdrangeoverride, nodeidx, "emitcdrangeoverride", time, 0);
327  myEmitcdrange = UT_Vector2D(0,1);
328  if (true && ( (true&&!(((getEmitcdrangeoverride()==0))||((int64(getEmitcdrampmode())==3))||((int64(getEmitcdrampmode())==4)))) ) )
329  graph->evalOpParm(myEmitcdrange, nodeidx, "emitcdrange", time, 0);
330 
331  }
332 
333 
334  void loadFromOpSubclass(const LoadParms &loadparms) override
335  {
336  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
337  }
338 
339 
340  void copyFrom(const OP_NodeParms *src) override
341  {
342  *this = *((const SOP_VolumeVisualizationParms *)src);
343  }
344 
345  template <typename T>
346  void
347  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
348  {
349  if (idx.size() < 1)
350  return;
351  UT_ASSERT(idx.size() == instance.size()+1);
352  if (idx.size() != instance.size()+1)
353  return;
354  switch (idx[0])
355  {
356  case 0:
357  coerceValue(value, myVisMode);
358  break;
359  case 1:
360  coerceValue(value, myRangemin);
361  break;
362  case 2:
363  coerceValue(value, myRangemax);
364  break;
365  case 3:
366  coerceValue(value, myDensityscale);
367  break;
368  case 4:
369  coerceValue(value, myShadowscale);
370  break;
371  case 5:
372  coerceValue(value, mySetambientcolors);
373  break;
374  case 6:
375  coerceValue(value, myAmbientexposed);
376  break;
377  case 7:
378  coerceValue(value, myAmbientoccluded);
379  break;
380  case 8:
381  coerceValue(value, mySetambientshadows);
382  break;
383  case 9:
384  coerceValue(value, myAmbientshadows);
385  break;
386  case 10:
387  coerceValue(value, mySetshadowcolor);
388  break;
389  case 11:
390  coerceValue(value, myShadowcolor);
391  break;
392  case 12:
393  coerceValue(value, mySetmaxres);
394  break;
395  case 13:
396  coerceValue(value, myMaxres);
397  break;
398  case 14:
399  coerceValue(value, mySetambientmapsize);
400  break;
401  case 15:
402  coerceValue(value, myAmbientmapsize);
403  break;
404  case 16:
405  coerceValue(value, mySetambientsteprate);
406  break;
407  case 17:
408  coerceValue(value, myAmbientsteprate);
409  break;
410  case 18:
411  coerceValue(value, myDensityfield);
412  break;
413  case 19:
414  coerceValue(value, myDensityrampmode);
415  break;
416  case 20:
417  coerceValue(value, myDensityramp);
418  break;
419  case 21:
420  coerceValue(value, myCdfield);
421  break;
422  case 22:
423  coerceValue(value, myCdrangeoverride);
424  break;
425  case 23:
426  coerceValue(value, myCdrange);
427  break;
428  case 24:
429  coerceValue(value, myCdrampmode);
430  break;
431  case 25:
432  coerceValue(value, myCdramp);
433  break;
434  case 26:
435  coerceValue(value, myEmitscale);
436  break;
437  case 27:
438  coerceValue(value, myEmitfield);
439  break;
440  case 28:
441  coerceValue(value, myEmitrangeoverride);
442  break;
443  case 29:
444  coerceValue(value, myEmitrange);
445  break;
446  case 30:
447  coerceValue(value, myEmitrampmode);
448  break;
449  case 31:
450  coerceValue(value, myEmitramp);
451  break;
452  case 32:
453  coerceValue(value, myEmitcdfield);
454  break;
455  case 33:
456  coerceValue(value, myEmitcdrampmode);
457  break;
458  case 34:
459  coerceValue(value, myEmitcdramp);
460  break;
461  case 35:
462  coerceValue(value, myEmitcdfieldscale);
463  break;
464  case 36:
465  coerceValue(value, myEmitcdtemperature0);
466  break;
467  case 37:
468  coerceValue(value, myEmitcdtemperature);
469  break;
470  case 38:
471  coerceValue(value, myEmitcdtonemap);
472  break;
473  case 39:
474  coerceValue(value, myEmitcdadaptation);
475  break;
476  case 40:
477  coerceValue(value, myEmitcdburn);
478  break;
479  case 41:
480  coerceValue(value, myEnablescatter);
481  break;
482  case 42:
483  coerceValue(value, myExtinctionratio);
484  break;
485  case 43:
486  coerceValue(value, myScatteringiter);
487  break;
488  case 44:
489  coerceValue(value, myEmitcdrangeoverride);
490  break;
491  case 45:
492  coerceValue(value, myEmitcdrange);
493  break;
494 
495  }
496  }
497 
498  bool isParmColorRamp(exint idx) const override
499  {
500  switch (idx)
501  {
502  case 25:
503  case 34:
504  return true;
505  }
506  return false;
507  }
508 
509  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
510  { doGetParmValue(idx, instance, value); }
511  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
512  { doGetParmValue(idx, instance, value); }
513  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
514  { doGetParmValue(idx, instance, value); }
515  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
516  { doGetParmValue(idx, instance, value); }
517  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
518  { doGetParmValue(idx, instance, value); }
519  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
520  { doGetParmValue(idx, instance, value); }
521  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
522  { doGetParmValue(idx, instance, value); }
523  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
524  { doGetParmValue(idx, instance, value); }
525  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
526  { doGetParmValue(idx, instance, value); }
527  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
528  { doGetParmValue(idx, instance, value); }
529  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
530  { doGetParmValue(idx, instance, value); }
531 
532  template <typename T>
533  void
534  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
535  {
536  if (idx.size() < 1)
537  return;
538  UT_ASSERT(idx.size() == instance.size()+1);
539  if (idx.size() != instance.size()+1)
540  return;
541  switch (idx[0])
542  {
543  case 0:
544  coerceValue(myVisMode, clampMinValue(0, clampMaxValue(2, value ) ));
545  break;
546  case 1:
547  coerceValue(myRangemin, ( ( value ) ));
548  break;
549  case 2:
550  coerceValue(myRangemax, ( ( value ) ));
551  break;
552  case 3:
553  coerceValue(myDensityscale, clampMinValue(0, ( value ) ));
554  break;
555  case 4:
556  coerceValue(myShadowscale, clampMinValue(0, ( value ) ));
557  break;
558  case 5:
559  coerceValue(mySetambientcolors, ( ( value ) ));
560  break;
561  case 6:
562  coerceValue(myAmbientexposed, clampMinValue(0, ( value ) ));
563  break;
564  case 7:
565  coerceValue(myAmbientoccluded, clampMinValue(0, ( value ) ));
566  break;
567  case 8:
568  coerceValue(mySetambientshadows, ( ( value ) ));
569  break;
570  case 9:
571  coerceValue(myAmbientshadows, clampMinValue(0, ( value ) ));
572  break;
573  case 10:
574  coerceValue(mySetshadowcolor, ( ( value ) ));
575  break;
576  case 11:
577  coerceValue(myShadowcolor, clampMinValue(0, clampMaxValue(1, value ) ));
578  break;
579  case 12:
580  coerceValue(mySetmaxres, ( ( value ) ));
581  break;
582  case 13:
583  coerceValue(myMaxres, clampMinValue(1, ( value ) ));
584  break;
585  case 14:
586  coerceValue(mySetambientmapsize, ( ( value ) ));
587  break;
588  case 15:
589  coerceValue(myAmbientmapsize, clampMinValue(0.1, clampMaxValue(1, value ) ));
590  break;
591  case 16:
592  coerceValue(mySetambientsteprate, ( ( value ) ));
593  break;
594  case 17:
595  coerceValue(myAmbientsteprate, clampMinValue(1, clampMaxValue(10, value ) ));
596  break;
597  case 18:
598  coerceValue(myDensityfield, ( ( value ) ));
599  break;
600  case 19:
601  coerceValue(myDensityrampmode, clampMinValue(0, clampMaxValue(2, value ) ));
602  break;
603  case 20:
604  coerceValue(myDensityramp, clampMinValue(1, ( value ) ));
605  break;
606  case 21:
607  coerceValue(myCdfield, ( ( value ) ));
608  break;
609  case 22:
610  coerceValue(myCdrangeoverride, ( ( value ) ));
611  break;
612  case 23:
613  coerceValue(myCdrange, ( ( value ) ));
614  break;
615  case 24:
616  coerceValue(myCdrampmode, clampMinValue(0, clampMaxValue(2, value ) ));
617  break;
618  case 25:
619  coerceValue(myCdramp, clampMinValue(1, ( value ) ));
620  break;
621  case 26:
622  coerceValue(myEmitscale, clampMinValue(0, ( value ) ));
623  break;
624  case 27:
625  coerceValue(myEmitfield, ( ( value ) ));
626  break;
627  case 28:
628  coerceValue(myEmitrangeoverride, ( ( value ) ));
629  break;
630  case 29:
631  coerceValue(myEmitrange, ( ( value ) ));
632  break;
633  case 30:
634  coerceValue(myEmitrampmode, clampMinValue(0, clampMaxValue(2, value ) ));
635  break;
636  case 31:
637  coerceValue(myEmitramp, clampMinValue(1, ( value ) ));
638  break;
639  case 32:
640  coerceValue(myEmitcdfield, ( ( value ) ));
641  break;
642  case 33:
643  coerceValue(myEmitcdrampmode, clampMinValue(0, clampMaxValue(4, value ) ));
644  break;
645  case 34:
646  coerceValue(myEmitcdramp, clampMinValue(1, ( value ) ));
647  break;
648  case 35:
649  coerceValue(myEmitcdfieldscale, ( ( value ) ));
650  break;
651  case 36:
652  coerceValue(myEmitcdtemperature0, clampMinValue(0, ( value ) ));
653  break;
654  case 37:
655  coerceValue(myEmitcdtemperature, clampMinValue(350, ( value ) ));
656  break;
657  case 38:
658  coerceValue(myEmitcdtonemap, ( ( value ) ));
659  break;
660  case 39:
661  coerceValue(myEmitcdadaptation, clampMinValue(0, ( value ) ));
662  break;
663  case 40:
664  coerceValue(myEmitcdburn, ( ( value ) ));
665  break;
666  case 41:
667  coerceValue(myEnablescatter, ( ( value ) ));
668  break;
669  case 42:
670  coerceValue(myExtinctionratio, clampMinValue(0, clampMaxValue(1, value ) ));
671  break;
672  case 43:
673  coerceValue(myScatteringiter, clampMinValue(1, ( value ) ));
674  break;
675  case 44:
676  coerceValue(myEmitcdrangeoverride, ( ( value ) ));
677  break;
678  case 45:
679  coerceValue(myEmitcdrange, ( ( value ) ));
680  break;
681 
682  }
683  }
684 
685  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
686  { doSetParmValue(idx, instance, value); }
687  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
688  { doSetParmValue(idx, instance, value); }
689  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
690  { doSetParmValue(idx, instance, value); }
691  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
692  { doSetParmValue(idx, instance, value); }
693  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
694  { doSetParmValue(idx, instance, value); }
695  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
696  { doSetParmValue(idx, instance, value); }
697  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
698  { doSetParmValue(idx, instance, value); }
699  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
700  { doSetParmValue(idx, instance, value); }
701  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
702  { doSetParmValue(idx, instance, value); }
703  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
704  { doSetParmValue(idx, instance, value); }
705  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
706  { doSetParmValue(idx, instance, value); }
707 
708  exint getNestNumParms(TempIndex idx) const override
709  {
710  if (idx.size() == 0)
711  return 46;
712  switch (idx[0])
713  {
714 
715  }
716  // Invalid
717  return 0;
718  }
719 
720  const char *getNestParmName(TempIndex fieldnum) const override
721  {
722  if (fieldnum.size() < 1)
723  return 0;
724  switch (fieldnum[0])
725  {
726  case 0:
727  return "vismode";
728  case 1:
729  return "rangemin";
730  case 2:
731  return "rangemax";
732  case 3:
733  return "densityscale";
734  case 4:
735  return "shadowscale";
736  case 5:
737  return "setambientcolors";
738  case 6:
739  return "ambientexposed";
740  case 7:
741  return "ambientoccluded";
742  case 8:
743  return "setambientshadows";
744  case 9:
745  return "ambientshadows";
746  case 10:
747  return "setshadowcolor";
748  case 11:
749  return "shadowcolor";
750  case 12:
751  return "setmaxres";
752  case 13:
753  return "maxres";
754  case 14:
755  return "setambientmapsize";
756  case 15:
757  return "ambientmapsize";
758  case 16:
759  return "setambientsteprate";
760  case 17:
761  return "ambientsteprate";
762  case 18:
763  return "densityfield";
764  case 19:
765  return "densityrampmode";
766  case 20:
767  return "densityramp";
768  case 21:
769  return "cdfield";
770  case 22:
771  return "cdrangeoverride";
772  case 23:
773  return "cdrange";
774  case 24:
775  return "cdrampmode";
776  case 25:
777  return "cdramp";
778  case 26:
779  return "emitscale";
780  case 27:
781  return "emitfield";
782  case 28:
783  return "emitrangeoverride";
784  case 29:
785  return "emitrange";
786  case 30:
787  return "emitrampmode";
788  case 31:
789  return "emitramp";
790  case 32:
791  return "emitcdfield";
792  case 33:
793  return "emitcdrampmode";
794  case 34:
795  return "emitcdramp";
796  case 35:
797  return "emitcdfieldscale";
798  case 36:
799  return "emitcdtemperature0";
800  case 37:
801  return "emitcdtemperature";
802  case 38:
803  return "emitcdtonemap";
804  case 39:
805  return "emitcdadaptation";
806  case 40:
807  return "emitcdburn";
808  case 41:
809  return "enablescatter";
810  case 42:
811  return "extinctionratio";
812  case 43:
813  return "scatteringiter";
814  case 44:
815  return "emitcdrangeoverride";
816  case 45:
817  return "emitcdrange";
818 
819  }
820  return 0;
821  }
822 
823  ParmType getNestParmType(TempIndex fieldnum) const override
824  {
825  if (fieldnum.size() < 1)
826  return PARM_UNSUPPORTED;
827  switch (fieldnum[0])
828  {
829  case 0:
830  return PARM_INTEGER;
831  case 1:
832  return PARM_FLOAT;
833  case 2:
834  return PARM_FLOAT;
835  case 3:
836  return PARM_FLOAT;
837  case 4:
838  return PARM_FLOAT;
839  case 5:
840  return PARM_INTEGER;
841  case 6:
842  return PARM_VECTOR3;
843  case 7:
844  return PARM_VECTOR3;
845  case 8:
846  return PARM_INTEGER;
847  case 9:
848  return PARM_FLOAT;
849  case 10:
850  return PARM_INTEGER;
851  case 11:
852  return PARM_VECTOR3;
853  case 12:
854  return PARM_INTEGER;
855  case 13:
856  return PARM_INTEGER;
857  case 14:
858  return PARM_INTEGER;
859  case 15:
860  return PARM_FLOAT;
861  case 16:
862  return PARM_INTEGER;
863  case 17:
864  return PARM_FLOAT;
865  case 18:
866  return PARM_STRING;
867  case 19:
868  return PARM_INTEGER;
869  case 20:
870  return PARM_RAMP;
871  case 21:
872  return PARM_STRING;
873  case 22:
874  return PARM_INTEGER;
875  case 23:
876  return PARM_VECTOR2;
877  case 24:
878  return PARM_INTEGER;
879  case 25:
880  return PARM_RAMP;
881  case 26:
882  return PARM_FLOAT;
883  case 27:
884  return PARM_STRING;
885  case 28:
886  return PARM_INTEGER;
887  case 29:
888  return PARM_VECTOR2;
889  case 30:
890  return PARM_INTEGER;
891  case 31:
892  return PARM_RAMP;
893  case 32:
894  return PARM_STRING;
895  case 33:
896  return PARM_INTEGER;
897  case 34:
898  return PARM_RAMP;
899  case 35:
900  return PARM_FLOAT;
901  case 36:
902  return PARM_FLOAT;
903  case 37:
904  return PARM_FLOAT;
905  case 38:
906  return PARM_INTEGER;
907  case 39:
908  return PARM_FLOAT;
909  case 40:
910  return PARM_FLOAT;
911  case 41:
912  return PARM_INTEGER;
913  case 42:
914  return PARM_FLOAT;
915  case 43:
916  return PARM_INTEGER;
917  case 44:
918  return PARM_INTEGER;
919  case 45:
920  return PARM_VECTOR2;
921 
922  }
923  return PARM_UNSUPPORTED;
924  }
925 
926  // Boiler plate to load individual types.
927  static void loadData(UT_IStream &is, int64 &v)
928  { is.bread(&v, 1); }
929  static void loadData(UT_IStream &is, bool &v)
930  { int64 iv; is.bread(&iv, 1); v = iv; }
931  static void loadData(UT_IStream &is, fpreal64 &v)
932  { is.bread<fpreal64>(&v, 1); }
933  static void loadData(UT_IStream &is, UT_Vector2D &v)
934  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
935  static void loadData(UT_IStream &is, UT_Vector3D &v)
936  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
937  is.bread<fpreal64>(&v.z(), 1); }
938  static void loadData(UT_IStream &is, UT_Vector4D &v)
939  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
940  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
941  static void loadData(UT_IStream &is, UT_Matrix2D &v)
942  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
943  static void loadData(UT_IStream &is, UT_Matrix3D &v)
944  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
945  static void loadData(UT_IStream &is, UT_Matrix4D &v)
946  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
947  static void loadData(UT_IStream &is, UT_Vector2I &v)
948  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
949  static void loadData(UT_IStream &is, UT_Vector3I &v)
950  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
951  is.bread<int64>(&v.z(), 1); }
952  static void loadData(UT_IStream &is, UT_Vector4I &v)
953  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
954  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
956  { is.bread(v); }
958  { UT_StringHolder rampdata;
959  loadData(is, rampdata);
960  if (rampdata.isstring())
961  {
962  v.reset(new UT_Ramp());
963  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
964  v->load(istr);
965  }
966  else v.reset();
967  }
970  loadData(is, data);
971  if (data.isstring())
972  {
973  // Find the data type.
974  const char *colon = UT_StringWrap(data).findChar(':');
975  if (colon)
976  {
977  int typelen = colon - data.buffer();
979  type.strncpy(data.buffer(), typelen);
980  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
981 
982  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
983  }
984  }
985  else v.reset();
986  }
987 
988  static void saveData(std::ostream &os, int64 v)
989  { UTwrite(os, &v); }
990  static void saveData(std::ostream &os, bool v)
991  { int64 iv = v; UTwrite(os, &iv); }
992  static void saveData(std::ostream &os, fpreal64 v)
993  { UTwrite<fpreal64>(os, &v); }
994  static void saveData(std::ostream &os, UT_Vector2D v)
995  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
996  static void saveData(std::ostream &os, UT_Vector3D v)
997  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
998  UTwrite<fpreal64>(os, &v.z()); }
999  static void saveData(std::ostream &os, UT_Vector4D v)
1000  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
1001  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
1002  static void saveData(std::ostream &os, UT_Matrix2D v)
1003  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) UTwrite<fpreal64>(os, &v(r, c)); }
1004  static void saveData(std::ostream &os, UT_Matrix3D v)
1005  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) UTwrite<fpreal64>(os, &v(r, c)); }
1006  static void saveData(std::ostream &os, UT_Matrix4D v)
1007  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) UTwrite<fpreal64>(os, &v(r, c)); }
1008  static void saveData(std::ostream &os, UT_StringHolder s)
1009  { UT_StringWrap(s).saveBinary(os); }
1010  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
1012  UT_OStringStream ostr;
1013  if (s) s->save(ostr);
1014  result = ostr.str();
1015  saveData(os, result);
1016  }
1017  static void saveData(std::ostream &os, PRM_DataItemHandle s)
1019  UT_OStringStream ostr;
1020  if (s)
1021  {
1022  ostr << s->getDataTypeToken();
1023  ostr << ":";
1024  s->saveBinary(ostr);
1025  }
1026  result = ostr.str();
1027  saveData(os, result);
1028  }
1029 
1030 
1031  void save(std::ostream &os) const
1032  {
1033  int32 v = version();
1034  UTwrite(os, &v);
1035  saveData(os, myVisMode);
1036  saveData(os, myRangemin);
1037  saveData(os, myRangemax);
1038  saveData(os, myDensityscale);
1039  saveData(os, myShadowscale);
1040  saveData(os, mySetambientcolors);
1041  saveData(os, myAmbientexposed);
1042  saveData(os, myAmbientoccluded);
1043  saveData(os, mySetambientshadows);
1044  saveData(os, myAmbientshadows);
1045  saveData(os, mySetshadowcolor);
1046  saveData(os, myShadowcolor);
1047  saveData(os, mySetmaxres);
1048  saveData(os, myMaxres);
1049  saveData(os, mySetambientmapsize);
1050  saveData(os, myAmbientmapsize);
1051  saveData(os, mySetambientsteprate);
1052  saveData(os, myAmbientsteprate);
1053  saveData(os, myDensityfield);
1054  saveData(os, myDensityrampmode);
1055  saveData(os, myDensityramp);
1056  saveData(os, myCdfield);
1057  saveData(os, myCdrangeoverride);
1058  saveData(os, myCdrange);
1059  saveData(os, myCdrampmode);
1060  saveData(os, myCdramp);
1061  saveData(os, myEmitscale);
1062  saveData(os, myEmitfield);
1063  saveData(os, myEmitrangeoverride);
1064  saveData(os, myEmitrange);
1065  saveData(os, myEmitrampmode);
1066  saveData(os, myEmitramp);
1067  saveData(os, myEmitcdfield);
1068  saveData(os, myEmitcdrampmode);
1069  saveData(os, myEmitcdramp);
1070  saveData(os, myEmitcdfieldscale);
1071  saveData(os, myEmitcdtemperature0);
1072  saveData(os, myEmitcdtemperature);
1073  saveData(os, myEmitcdtonemap);
1074  saveData(os, myEmitcdadaptation);
1075  saveData(os, myEmitcdburn);
1076  saveData(os, myEnablescatter);
1077  saveData(os, myExtinctionratio);
1078  saveData(os, myScatteringiter);
1079  saveData(os, myEmitcdrangeoverride);
1080  saveData(os, myEmitcdrange);
1081 
1082  }
1083 
1084  bool load(UT_IStream &is)
1085  {
1086  int32 v;
1087  is.bread(&v, 1);
1088  if (version() != v)
1089  {
1090  // Fail incompatible versions
1091  return false;
1092  }
1093  loadData(is, myVisMode);
1094  loadData(is, myRangemin);
1095  loadData(is, myRangemax);
1096  loadData(is, myDensityscale);
1097  loadData(is, myShadowscale);
1098  loadData(is, mySetambientcolors);
1099  loadData(is, myAmbientexposed);
1100  loadData(is, myAmbientoccluded);
1101  loadData(is, mySetambientshadows);
1102  loadData(is, myAmbientshadows);
1103  loadData(is, mySetshadowcolor);
1104  loadData(is, myShadowcolor);
1105  loadData(is, mySetmaxres);
1106  loadData(is, myMaxres);
1107  loadData(is, mySetambientmapsize);
1108  loadData(is, myAmbientmapsize);
1109  loadData(is, mySetambientsteprate);
1110  loadData(is, myAmbientsteprate);
1111  loadData(is, myDensityfield);
1112  loadData(is, myDensityrampmode);
1113  loadData(is, myDensityramp);
1114  loadData(is, myCdfield);
1115  loadData(is, myCdrangeoverride);
1116  loadData(is, myCdrange);
1117  loadData(is, myCdrampmode);
1118  loadData(is, myCdramp);
1119  loadData(is, myEmitscale);
1120  loadData(is, myEmitfield);
1121  loadData(is, myEmitrangeoverride);
1122  loadData(is, myEmitrange);
1123  loadData(is, myEmitrampmode);
1124  loadData(is, myEmitramp);
1125  loadData(is, myEmitcdfield);
1126  loadData(is, myEmitcdrampmode);
1127  loadData(is, myEmitcdramp);
1128  loadData(is, myEmitcdfieldscale);
1129  loadData(is, myEmitcdtemperature0);
1130  loadData(is, myEmitcdtemperature);
1131  loadData(is, myEmitcdtonemap);
1132  loadData(is, myEmitcdadaptation);
1133  loadData(is, myEmitcdburn);
1134  loadData(is, myEnablescatter);
1135  loadData(is, myExtinctionratio);
1136  loadData(is, myScatteringiter);
1137  loadData(is, myEmitcdrangeoverride);
1138  loadData(is, myEmitcdrange);
1139 
1140  return true;
1141  }
1142 
1143  VisMode getVisMode() const { return VisMode(myVisMode); }
1144  void setVisMode(VisMode val) { myVisMode = int64(val); }
1146  {
1147  SOP_Node *thissop = cookparms.getNode();
1148  if (!thissop) return getVisMode();
1149  int64 result;
1150  OP_Utils::evalOpParm(result, thissop, "vismode", cookparms.getCookTime(), 0);
1151  return VisMode(result);
1152  }
1153  fpreal64 getRangemin() const { return myRangemin; }
1154  void setRangemin(fpreal64 val) { myRangemin = val; }
1156  {
1157  SOP_Node *thissop = cookparms.getNode();
1158  if (!thissop) return getRangemin();
1159  fpreal64 result;
1160  OP_Utils::evalOpParm(result, thissop, "rangemin", cookparms.getCookTime(), 0);
1161  return result;
1162  }
1163  fpreal64 getRangemax() const { return myRangemax; }
1164  void setRangemax(fpreal64 val) { myRangemax = val; }
1166  {
1167  SOP_Node *thissop = cookparms.getNode();
1168  if (!thissop) return getRangemax();
1169  fpreal64 result;
1170  OP_Utils::evalOpParm(result, thissop, "rangemax", cookparms.getCookTime(), 0);
1171  return result;
1172  }
1173  fpreal64 getDensityscale() const { return myDensityscale; }
1174  void setDensityscale(fpreal64 val) { myDensityscale = val; }
1176  {
1177  SOP_Node *thissop = cookparms.getNode();
1178  if (!thissop) return getDensityscale();
1179  fpreal64 result;
1180  OP_Utils::evalOpParm(result, thissop, "densityscale", cookparms.getCookTime(), 0);
1181  return result;
1182  }
1183  fpreal64 getShadowscale() const { return myShadowscale; }
1184  void setShadowscale(fpreal64 val) { myShadowscale = val; }
1186  {
1187  SOP_Node *thissop = cookparms.getNode();
1188  if (!thissop) return getShadowscale();
1189  fpreal64 result;
1190  OP_Utils::evalOpParm(result, thissop, "shadowscale", cookparms.getCookTime(), 0);
1191  return result;
1192  }
1193  bool getSetambientcolors() const { return mySetambientcolors; }
1194  void setSetambientcolors(bool val) { mySetambientcolors = val; }
1195  bool opSetambientcolors(const SOP_NodeVerb::CookParms &cookparms) const
1196  {
1197  SOP_Node *thissop = cookparms.getNode();
1198  if (!thissop) return getSetambientcolors();
1199  bool result;
1200  OP_Utils::evalOpParm(result, thissop, "setambientcolors", cookparms.getCookTime(), 0);
1201  return result;
1202  }
1203  UT_Vector3D getAmbientexposed() const { return myAmbientexposed; }
1204  void setAmbientexposed(UT_Vector3D val) { myAmbientexposed = val; }
1206  {
1207  SOP_Node *thissop = cookparms.getNode();
1208  if (!thissop) return getAmbientexposed();
1210  OP_Utils::evalOpParm(result, thissop, "ambientexposed", cookparms.getCookTime(), 0);
1211  return result;
1212  }
1213  UT_Vector3D getAmbientoccluded() const { return myAmbientoccluded; }
1214  void setAmbientoccluded(UT_Vector3D val) { myAmbientoccluded = val; }
1216  {
1217  SOP_Node *thissop = cookparms.getNode();
1218  if (!thissop) return getAmbientoccluded();
1220  OP_Utils::evalOpParm(result, thissop, "ambientoccluded", cookparms.getCookTime(), 0);
1221  return result;
1222  }
1223  bool getSetambientshadows() const { return mySetambientshadows; }
1224  void setSetambientshadows(bool val) { mySetambientshadows = val; }
1225  bool opSetambientshadows(const SOP_NodeVerb::CookParms &cookparms) const
1226  {
1227  SOP_Node *thissop = cookparms.getNode();
1228  if (!thissop) return getSetambientshadows();
1229  bool result;
1230  OP_Utils::evalOpParm(result, thissop, "setambientshadows", cookparms.getCookTime(), 0);
1231  return result;
1232  }
1233  fpreal64 getAmbientshadows() const { return myAmbientshadows; }
1234  void setAmbientshadows(fpreal64 val) { myAmbientshadows = val; }
1236  {
1237  SOP_Node *thissop = cookparms.getNode();
1238  if (!thissop) return getAmbientshadows();
1239  fpreal64 result;
1240  OP_Utils::evalOpParm(result, thissop, "ambientshadows", cookparms.getCookTime(), 0);
1241  return result;
1242  }
1243  bool getSetshadowcolor() const { return mySetshadowcolor; }
1244  void setSetshadowcolor(bool val) { mySetshadowcolor = val; }
1245  bool opSetshadowcolor(const SOP_NodeVerb::CookParms &cookparms) const
1246  {
1247  SOP_Node *thissop = cookparms.getNode();
1248  if (!thissop) return getSetshadowcolor();
1249  bool result;
1250  OP_Utils::evalOpParm(result, thissop, "setshadowcolor", cookparms.getCookTime(), 0);
1251  return result;
1252  }
1253  UT_Vector3D getShadowcolor() const { return myShadowcolor; }
1254  void setShadowcolor(UT_Vector3D val) { myShadowcolor = val; }
1256  {
1257  SOP_Node *thissop = cookparms.getNode();
1258  if (!thissop) return getShadowcolor();
1260  OP_Utils::evalOpParm(result, thissop, "shadowcolor", cookparms.getCookTime(), 0);
1261  return result;
1262  }
1263  bool getSetmaxres() const { return mySetmaxres; }
1264  void setSetmaxres(bool val) { mySetmaxres = val; }
1265  bool opSetmaxres(const SOP_NodeVerb::CookParms &cookparms) const
1266  {
1267  SOP_Node *thissop = cookparms.getNode();
1268  if (!thissop) return getSetmaxres();
1269  bool result;
1270  OP_Utils::evalOpParm(result, thissop, "setmaxres", cookparms.getCookTime(), 0);
1271  return result;
1272  }
1273  int64 getMaxres() const { return myMaxres; }
1274  void setMaxres(int64 val) { myMaxres = val; }
1275  int64 opMaxres(const SOP_NodeVerb::CookParms &cookparms) const
1276  {
1277  SOP_Node *thissop = cookparms.getNode();
1278  if (!thissop) return getMaxres();
1279  int64 result;
1280  OP_Utils::evalOpParm(result, thissop, "maxres", cookparms.getCookTime(), 0);
1281  return result;
1282  }
1283  bool getSetambientmapsize() const { return mySetambientmapsize; }
1284  void setSetambientmapsize(bool val) { mySetambientmapsize = val; }
1285  bool opSetambientmapsize(const SOP_NodeVerb::CookParms &cookparms) const
1286  {
1287  SOP_Node *thissop = cookparms.getNode();
1288  if (!thissop) return getSetambientmapsize();
1289  bool result;
1290  OP_Utils::evalOpParm(result, thissop, "setambientmapsize", cookparms.getCookTime(), 0);
1291  return result;
1292  }
1293  fpreal64 getAmbientmapsize() const { return myAmbientmapsize; }
1294  void setAmbientmapsize(fpreal64 val) { myAmbientmapsize = val; }
1296  {
1297  SOP_Node *thissop = cookparms.getNode();
1298  if (!thissop) return getAmbientmapsize();
1299  fpreal64 result;
1300  OP_Utils::evalOpParm(result, thissop, "ambientmapsize", cookparms.getCookTime(), 0);
1301  return result;
1302  }
1303  bool getSetambientsteprate() const { return mySetambientsteprate; }
1304  void setSetambientsteprate(bool val) { mySetambientsteprate = val; }
1305  bool opSetambientsteprate(const SOP_NodeVerb::CookParms &cookparms) const
1306  {
1307  SOP_Node *thissop = cookparms.getNode();
1308  if (!thissop) return getSetambientsteprate();
1309  bool result;
1310  OP_Utils::evalOpParm(result, thissop, "setambientsteprate", cookparms.getCookTime(), 0);
1311  return result;
1312  }
1313  fpreal64 getAmbientsteprate() const { return myAmbientsteprate; }
1314  void setAmbientsteprate(fpreal64 val) { myAmbientsteprate = val; }
1316  {
1317  SOP_Node *thissop = cookparms.getNode();
1318  if (!thissop) return getAmbientsteprate();
1319  fpreal64 result;
1320  OP_Utils::evalOpParm(result, thissop, "ambientsteprate", cookparms.getCookTime(), 0);
1321  return result;
1322  }
1323  const UT_StringHolder & getDensityfield() const { return myDensityfield; }
1324  void setDensityfield(const UT_StringHolder & val) { myDensityfield = val; }
1326  {
1327  SOP_Node *thissop = cookparms.getNode();
1328  if (!thissop) return getDensityfield();
1330  OP_Utils::evalOpParm(result, thissop, "densityfield", cookparms.getCookTime(), 0);
1331  return result;
1332  }
1333  Densityrampmode getDensityrampmode() const { return Densityrampmode(myDensityrampmode); }
1334  void setDensityrampmode(Densityrampmode val) { myDensityrampmode = int64(val); }
1336  {
1337  SOP_Node *thissop = cookparms.getNode();
1338  if (!thissop) return getDensityrampmode();
1339  int64 result;
1340  OP_Utils::evalOpParm(result, thissop, "densityrampmode", cookparms.getCookTime(), 0);
1341  return Densityrampmode(result);
1342  }
1343  UT_SharedPtr<UT_Ramp> getDensityramp() const { return myDensityramp; }
1344  void setDensityramp(UT_SharedPtr<UT_Ramp> val) { myDensityramp = val; }
1346  {
1347  SOP_Node *thissop = cookparms.getNode();
1348  if (!thissop) return getDensityramp();
1350  OP_Utils::evalOpParm(result, thissop, "densityramp", cookparms.getCookTime(), 0);
1351  return result;
1352  }
1353  const UT_StringHolder & getCdfield() const { return myCdfield; }
1354  void setCdfield(const UT_StringHolder & val) { myCdfield = val; }
1356  {
1357  SOP_Node *thissop = cookparms.getNode();
1358  if (!thissop) return getCdfield();
1360  OP_Utils::evalOpParm(result, thissop, "cdfield", cookparms.getCookTime(), 0);
1361  return result;
1362  }
1363  bool getCdrangeoverride() const { return myCdrangeoverride; }
1364  void setCdrangeoverride(bool val) { myCdrangeoverride = val; }
1365  bool opCdrangeoverride(const SOP_NodeVerb::CookParms &cookparms) const
1366  {
1367  SOP_Node *thissop = cookparms.getNode();
1368  if (!thissop) return getCdrangeoverride();
1369  bool result;
1370  OP_Utils::evalOpParm(result, thissop, "cdrangeoverride", cookparms.getCookTime(), 0);
1371  return result;
1372  }
1373  UT_Vector2D getCdrange() const { return myCdrange; }
1374  void setCdrange(UT_Vector2D val) { myCdrange = val; }
1376  {
1377  SOP_Node *thissop = cookparms.getNode();
1378  if (!thissop) return getCdrange();
1380  OP_Utils::evalOpParm(result, thissop, "cdrange", cookparms.getCookTime(), 0);
1381  return result;
1382  }
1383  Cdrampmode getCdrampmode() const { return Cdrampmode(myCdrampmode); }
1384  void setCdrampmode(Cdrampmode val) { myCdrampmode = int64(val); }
1386  {
1387  SOP_Node *thissop = cookparms.getNode();
1388  if (!thissop) return getCdrampmode();
1389  int64 result;
1390  OP_Utils::evalOpParm(result, thissop, "cdrampmode", cookparms.getCookTime(), 0);
1391  return Cdrampmode(result);
1392  }
1393  UT_SharedPtr<UT_Ramp> getCdramp() const { return myCdramp; }
1394  void setCdramp(UT_SharedPtr<UT_Ramp> val) { myCdramp = val; }
1396  {
1397  SOP_Node *thissop = cookparms.getNode();
1398  if (!thissop) return getCdramp();
1400  OP_Utils::evalOpParm(result, thissop, "cdramp", cookparms.getCookTime(), 0);
1401  return result;
1402  }
1403  fpreal64 getEmitscale() const { return myEmitscale; }
1404  void setEmitscale(fpreal64 val) { myEmitscale = val; }
1406  {
1407  SOP_Node *thissop = cookparms.getNode();
1408  if (!thissop) return getEmitscale();
1409  fpreal64 result;
1410  OP_Utils::evalOpParm(result, thissop, "emitscale", cookparms.getCookTime(), 0);
1411  return result;
1412  }
1413  const UT_StringHolder & getEmitfield() const { return myEmitfield; }
1414  void setEmitfield(const UT_StringHolder & val) { myEmitfield = val; }
1416  {
1417  SOP_Node *thissop = cookparms.getNode();
1418  if (!thissop) return getEmitfield();
1420  OP_Utils::evalOpParm(result, thissop, "emitfield", cookparms.getCookTime(), 0);
1421  return result;
1422  }
1423  bool getEmitrangeoverride() const { return myEmitrangeoverride; }
1424  void setEmitrangeoverride(bool val) { myEmitrangeoverride = val; }
1425  bool opEmitrangeoverride(const SOP_NodeVerb::CookParms &cookparms) const
1426  {
1427  SOP_Node *thissop = cookparms.getNode();
1428  if (!thissop) return getEmitrangeoverride();
1429  bool result;
1430  OP_Utils::evalOpParm(result, thissop, "emitrangeoverride", cookparms.getCookTime(), 0);
1431  return result;
1432  }
1433  UT_Vector2D getEmitrange() const { return myEmitrange; }
1434  void setEmitrange(UT_Vector2D val) { myEmitrange = val; }
1436  {
1437  SOP_Node *thissop = cookparms.getNode();
1438  if (!thissop) return getEmitrange();
1440  OP_Utils::evalOpParm(result, thissop, "emitrange", cookparms.getCookTime(), 0);
1441  return result;
1442  }
1443  Emitrampmode getEmitrampmode() const { return Emitrampmode(myEmitrampmode); }
1444  void setEmitrampmode(Emitrampmode val) { myEmitrampmode = int64(val); }
1446  {
1447  SOP_Node *thissop = cookparms.getNode();
1448  if (!thissop) return getEmitrampmode();
1449  int64 result;
1450  OP_Utils::evalOpParm(result, thissop, "emitrampmode", cookparms.getCookTime(), 0);
1451  return Emitrampmode(result);
1452  }
1453  UT_SharedPtr<UT_Ramp> getEmitramp() const { return myEmitramp; }
1454  void setEmitramp(UT_SharedPtr<UT_Ramp> val) { myEmitramp = val; }
1456  {
1457  SOP_Node *thissop = cookparms.getNode();
1458  if (!thissop) return getEmitramp();
1460  OP_Utils::evalOpParm(result, thissop, "emitramp", cookparms.getCookTime(), 0);
1461  return result;
1462  }
1463  const UT_StringHolder & getEmitcdfield() const { return myEmitcdfield; }
1464  void setEmitcdfield(const UT_StringHolder & val) { myEmitcdfield = val; }
1466  {
1467  SOP_Node *thissop = cookparms.getNode();
1468  if (!thissop) return getEmitcdfield();
1470  OP_Utils::evalOpParm(result, thissop, "emitcdfield", cookparms.getCookTime(), 0);
1471  return result;
1472  }
1473  Emitcdrampmode getEmitcdrampmode() const { return Emitcdrampmode(myEmitcdrampmode); }
1474  void setEmitcdrampmode(Emitcdrampmode val) { myEmitcdrampmode = int64(val); }
1476  {
1477  SOP_Node *thissop = cookparms.getNode();
1478  if (!thissop) return getEmitcdrampmode();
1479  int64 result;
1480  OP_Utils::evalOpParm(result, thissop, "emitcdrampmode", cookparms.getCookTime(), 0);
1481  return Emitcdrampmode(result);
1482  }
1483  UT_SharedPtr<UT_Ramp> getEmitcdramp() const { return myEmitcdramp; }
1484  void setEmitcdramp(UT_SharedPtr<UT_Ramp> val) { myEmitcdramp = val; }
1486  {
1487  SOP_Node *thissop = cookparms.getNode();
1488  if (!thissop) return getEmitcdramp();
1490  OP_Utils::evalOpParm(result, thissop, "emitcdramp", cookparms.getCookTime(), 0);
1491  return result;
1492  }
1493  fpreal64 getEmitcdfieldscale() const { return myEmitcdfieldscale; }
1494  void setEmitcdfieldscale(fpreal64 val) { myEmitcdfieldscale = val; }
1496  {
1497  SOP_Node *thissop = cookparms.getNode();
1498  if (!thissop) return getEmitcdfieldscale();
1499  fpreal64 result;
1500  OP_Utils::evalOpParm(result, thissop, "emitcdfieldscale", cookparms.getCookTime(), 0);
1501  return result;
1502  }
1503  fpreal64 getEmitcdtemperature0() const { return myEmitcdtemperature0; }
1504  void setEmitcdtemperature0(fpreal64 val) { myEmitcdtemperature0 = val; }
1506  {
1507  SOP_Node *thissop = cookparms.getNode();
1508  if (!thissop) return getEmitcdtemperature0();
1509  fpreal64 result;
1510  OP_Utils::evalOpParm(result, thissop, "emitcdtemperature0", cookparms.getCookTime(), 0);
1511  return result;
1512  }
1513  fpreal64 getEmitcdtemperature() const { return myEmitcdtemperature; }
1514  void setEmitcdtemperature(fpreal64 val) { myEmitcdtemperature = val; }
1516  {
1517  SOP_Node *thissop = cookparms.getNode();
1518  if (!thissop) return getEmitcdtemperature();
1519  fpreal64 result;
1520  OP_Utils::evalOpParm(result, thissop, "emitcdtemperature", cookparms.getCookTime(), 0);
1521  return result;
1522  }
1523  bool getEmitcdtonemap() const { return myEmitcdtonemap; }
1524  void setEmitcdtonemap(bool val) { myEmitcdtonemap = val; }
1525  bool opEmitcdtonemap(const SOP_NodeVerb::CookParms &cookparms) const
1526  {
1527  SOP_Node *thissop = cookparms.getNode();
1528  if (!thissop) return getEmitcdtonemap();
1529  bool result;
1530  OP_Utils::evalOpParm(result, thissop, "emitcdtonemap", cookparms.getCookTime(), 0);
1531  return result;
1532  }
1533  fpreal64 getEmitcdadaptation() const { return myEmitcdadaptation; }
1534  void setEmitcdadaptation(fpreal64 val) { myEmitcdadaptation = val; }
1536  {
1537  SOP_Node *thissop = cookparms.getNode();
1538  if (!thissop) return getEmitcdadaptation();
1539  fpreal64 result;
1540  OP_Utils::evalOpParm(result, thissop, "emitcdadaptation", cookparms.getCookTime(), 0);
1541  return result;
1542  }
1543  fpreal64 getEmitcdburn() const { return myEmitcdburn; }
1544  void setEmitcdburn(fpreal64 val) { myEmitcdburn = val; }
1546  {
1547  SOP_Node *thissop = cookparms.getNode();
1548  if (!thissop) return getEmitcdburn();
1549  fpreal64 result;
1550  OP_Utils::evalOpParm(result, thissop, "emitcdburn", cookparms.getCookTime(), 0);
1551  return result;
1552  }
1553  bool getEnablescatter() const { return myEnablescatter; }
1554  void setEnablescatter(bool val) { myEnablescatter = val; }
1555  bool opEnablescatter(const SOP_NodeVerb::CookParms &cookparms) const
1556  {
1557  SOP_Node *thissop = cookparms.getNode();
1558  if (!thissop) return getEnablescatter();
1559  bool result;
1560  OP_Utils::evalOpParm(result, thissop, "enablescatter", cookparms.getCookTime(), 0);
1561  return result;
1562  }
1563  fpreal64 getExtinctionratio() const { return myExtinctionratio; }
1564  void setExtinctionratio(fpreal64 val) { myExtinctionratio = val; }
1566  {
1567  SOP_Node *thissop = cookparms.getNode();
1568  if (!thissop) return getExtinctionratio();
1569  fpreal64 result;
1570  OP_Utils::evalOpParm(result, thissop, "extinctionratio", cookparms.getCookTime(), 0);
1571  return result;
1572  }
1573  int64 getScatteringiter() const { return myScatteringiter; }
1574  void setScatteringiter(int64 val) { myScatteringiter = val; }
1576  {
1577  SOP_Node *thissop = cookparms.getNode();
1578  if (!thissop) return getScatteringiter();
1579  int64 result;
1580  OP_Utils::evalOpParm(result, thissop, "scatteringiter", cookparms.getCookTime(), 0);
1581  return result;
1582  }
1583  bool getEmitcdrangeoverride() const { return myEmitcdrangeoverride; }
1584  void setEmitcdrangeoverride(bool val) { myEmitcdrangeoverride = val; }
1585  bool opEmitcdrangeoverride(const SOP_NodeVerb::CookParms &cookparms) const
1586  {
1587  SOP_Node *thissop = cookparms.getNode();
1588  if (!thissop) return getEmitcdrangeoverride();
1589  bool result;
1590  OP_Utils::evalOpParm(result, thissop, "emitcdrangeoverride", cookparms.getCookTime(), 0);
1591  return result;
1592  }
1593  UT_Vector2D getEmitcdrange() const { return myEmitcdrange; }
1594  void setEmitcdrange(UT_Vector2D val) { myEmitcdrange = val; }
1596  {
1597  SOP_Node *thissop = cookparms.getNode();
1598  if (!thissop) return getEmitcdrange();
1600  OP_Utils::evalOpParm(result, thissop, "emitcdrange", cookparms.getCookTime(), 0);
1601  return result;
1602  }
1603 
1604 private:
1605  int64 myVisMode;
1606  fpreal64 myRangemin;
1607  fpreal64 myRangemax;
1608  fpreal64 myDensityscale;
1609  fpreal64 myShadowscale;
1610  bool mySetambientcolors;
1611  UT_Vector3D myAmbientexposed;
1612  UT_Vector3D myAmbientoccluded;
1613  bool mySetambientshadows;
1614  fpreal64 myAmbientshadows;
1615  bool mySetshadowcolor;
1616  UT_Vector3D myShadowcolor;
1617  bool mySetmaxres;
1618  int64 myMaxres;
1619  bool mySetambientmapsize;
1620  fpreal64 myAmbientmapsize;
1621  bool mySetambientsteprate;
1622  fpreal64 myAmbientsteprate;
1623  UT_StringHolder myDensityfield;
1624  int64 myDensityrampmode;
1625  UT_SharedPtr<UT_Ramp> myDensityramp;
1626  UT_StringHolder myCdfield;
1627  bool myCdrangeoverride;
1628  UT_Vector2D myCdrange;
1629  int64 myCdrampmode;
1630  UT_SharedPtr<UT_Ramp> myCdramp;
1631  fpreal64 myEmitscale;
1632  UT_StringHolder myEmitfield;
1633  bool myEmitrangeoverride;
1634  UT_Vector2D myEmitrange;
1635  int64 myEmitrampmode;
1636  UT_SharedPtr<UT_Ramp> myEmitramp;
1637  UT_StringHolder myEmitcdfield;
1638  int64 myEmitcdrampmode;
1639  UT_SharedPtr<UT_Ramp> myEmitcdramp;
1640  fpreal64 myEmitcdfieldscale;
1641  fpreal64 myEmitcdtemperature0;
1642  fpreal64 myEmitcdtemperature;
1643  bool myEmitcdtonemap;
1644  fpreal64 myEmitcdadaptation;
1645  fpreal64 myEmitcdburn;
1646  bool myEnablescatter;
1647  fpreal64 myExtinctionratio;
1648  int64 myScatteringiter;
1649  bool myEmitcdrangeoverride;
1650  UT_Vector2D myEmitcdrange;
1651 
1652 };
bool opEmitrangeoverride(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3D opAmbientexposed(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
static void loadData(UT_IStream &is, UT_Vector2I &v)
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
bool opSetambientshadows(const SOP_NodeVerb::CookParms &cookparms) const
T clampMaxValue(fpreal maxvalue, const T &src) const
Definition: OP_NodeParms.h:315
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
bool opSetshadowcolor(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opEmitscale(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opEmitcdtemperature(const SOP_NodeVerb::CookParms &cookparms) const
UT_SharedPtr< UT_Ramp > opEmitcdramp(const SOP_NodeVerb::CookParms &cookparms) const
exint bread(int32 *buffer, exint asize=1)
UT_SharedPtr< UT_Ramp > opDensityramp(const SOP_NodeVerb::CookParms &cookparms) const
GLboolean * data
Definition: glcorearb.h:131
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector4.h:493
const GLdouble * v
Definition: glcorearb.h:837
fpreal getTime() const
Definition: OP_Context.h:62
UT_Vector2T< fpreal64 > UT_Vector2D
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
ParmType getNestParmType(TempIndex fieldnum) const override
bool opSetambientcolors(const SOP_NodeVerb::CookParms &cookparms) const
bool operator==(const SOP_VolumeVisualizationParms &src) const
static void loadData(UT_IStream &is, UT_Matrix3D &v)
const OP_Context & context() const
Definition: OP_NodeParms.h:97
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector3.h:667
int64 exint
Definition: SYS_Types.h:125
SYS_FORCE_INLINE const char * buffer() const
GLdouble s
Definition: glad.h:3009
UT_SharedPtr< UT_Ramp > opEmitramp(const SOP_NodeVerb::CookParms &cookparms) const
An output stream object that owns its own string buffer storage.
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
void setEmitcdfield(const UT_StringHolder &val)
const char * getNestParmName(TempIndex fieldnum) const override
UT_StringHolder opEmitcdfield(const SOP_NodeVerb::CookParms &cookparms) const
**But if you need a result
Definition: thread.h:613
UT_SharedPtr< UT_Ramp > getEmitcdramp() const
exint getNestNumParms(TempIndex idx) const override
UT_SharedPtr< UT_Ramp > getDensityramp() const
T clampMinValue(fpreal minvalue, const T &src) const
Definition: OP_NodeParms.h:308
bool opEmitcdrangeoverride(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opAmbientmapsize(const SOP_NodeVerb::CookParms &cookparms) const
exint nodeIdx() const
Definition: OP_NodeParms.h:95
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
UT_Vector3D opAmbientoccluded(const SOP_NodeVerb::CookParms &cookparms) const
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
Densityrampmode opDensityrampmode(const SOP_NodeVerb::CookParms &cookparms) const
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
fpreal64 opDensityscale(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector2D &v)
bool opEnablescatter(const SOP_NodeVerb::CookParms &cookparms) const
UT_SharedPtr< UT_Ramp > getEmitramp() const
void setDensityramp(UT_SharedPtr< UT_Ramp > val)
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
UT_SharedPtr< UT_Ramp > opCdramp(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opExtinctionratio(const SOP_NodeVerb::CookParms &cookparms) const
double fpreal64
Definition: SYS_Types.h:201
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector2.h:423
fpreal64 opShadowscale(const SOP_NodeVerb::CookParms &cookparms) const
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
fpreal64 opRangemin(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opDensityfield(const SOP_NodeVerb::CookParms &cookparms) const
Emitrampmode opEmitrampmode(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
int64 opMaxres(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector2D opEmitrange(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, int64 v)
exint length() const
bool operator!=(const SOP_VolumeVisualizationParms &src) const
static void loadData(UT_IStream &is, fpreal64 &v)
UT_Vector2D opEmitcdrange(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:36
static void loadData(UT_IStream &is, UT_Vector4I &v)
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector4.h:495
static void saveData(std::ostream &os, UT_Matrix3D v)
fpreal64 opEmitcdburn(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Matrix4D v)
UT_SharedPtr< UT_Ramp > getCdramp() const
static void loadData(UT_IStream &is, UT_Matrix4D &v)
fpreal64 opEmitcdadaptation(const SOP_NodeVerb::CookParms &cookparms) const
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
static void loadData(UT_IStream &is, bool &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
static void saveData(std::ostream &os, UT_Matrix2D v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
bool opCdrangeoverride(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
void setEmitramp(UT_SharedPtr< UT_Ramp > val)
long long int64
Definition: SYS_Types.h:116
UT_Vector2D opCdrange(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
const UT_StringHolder & getEmitcdfield() const
UT_Vector3T< fpreal64 > UT_Vector3D
bool opEmitcdtonemap(const SOP_NodeVerb::CookParms &cookparms) const
void setDensityfield(const UT_StringHolder &val)
bool opSetambientmapsize(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
static void saveData(std::ostream &os, UT_Vector2D v)
static void saveData(std::ostream &os, fpreal64 v)
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:296
int64 opScatteringiter(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
GT_API const UT_StringHolder version
bool opSetambientsteprate(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opEmitcdfieldscale(const SOP_NodeVerb::CookParms &cookparms) const
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
fpreal64 opRangemax(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
fpreal64 opAmbientshadows(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opEmitcdtemperature0(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector3I &v)
UT_StringHolder opCdfield(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opAmbientsteprate(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
Emitcdrampmode opEmitcdrampmode(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Vector4D v)
void coerceValue(T &result, const S &src) const
Definition: OP_NodeParms.h:301
static void loadData(UT_IStream &is, UT_StringHolder &v)
const UT_StringHolder & getDensityfield() const
void setCdramp(UT_SharedPtr< UT_Ramp > val)
fpreal64 fpreal
Definition: SYS_Types.h:277
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:99
static void loadData(UT_IStream &is, UT_Matrix2D &v)
Utility class for containing a color ramp.
Definition: UT_Ramp.h:88
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
void setCdfield(const UT_StringHolder &val)
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
GLuint GLfloat * val
Definition: glcorearb.h:1608
#define SOP_API
Definition: SOP_API.h:10
UT_Vector3D opShadowcolor(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, bool v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:361
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
const char * findChar(int c) const
Definition: UT_String.h:1385
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
static void saveData(std::ostream &os, UT_Vector3D v)
Definition: core.h:1131
const UT_StringHolder & getEmitfield() const
void loadFromOpSubclass(const LoadParms &loadparms) override
bool isParmColorRamp(exint idx) const override
UT_StringHolder opEmitfield(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getCdfield() const
void setEmitcdramp(UT_SharedPtr< UT_Ramp > val)
GLboolean r
Definition: glcorearb.h:1222
void copyFrom(const OP_NodeParms *src) override
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
static void loadData(UT_IStream &is, UT_Vector3D &v)
static void saveData(std::ostream &os, UT_StringHolder s)
void setDensityrampmode(Densityrampmode val)
type
Definition: core.h:1059
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
bool opSetmaxres(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
void setEmitfield(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_Vector4D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:89
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector2.h:425
SYS_FORCE_INLINE bool isstring() const
static void loadData(UT_IStream &is, int64 &v)
OP_NodeParms & operator=(const OP_NodeParms &)=default
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
Cdrampmode opCdrampmode(const SOP_NodeVerb::CookParms &cookparms) const
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663
VisMode opVisMode(const SOP_NodeVerb::CookParms &cookparms) const