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