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