HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_Primitive.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_PrimitiveEnums
24 {
25  enum class DoRot
26  {
27  OFF = 0,
28  ON,
29  MATCH
30  };
31 
33  getToken(DoRot enum_value)
34  {
35  using namespace UT::Literal;
36  switch (enum_value) {
37  case DoRot::OFF: return "off"_sh;
38  case DoRot::ON: return "on"_sh;
39  case DoRot::MATCH: return "match"_sh;
40  default: UT_ASSERT(false); return ""_sh;
41  }
42  }
43 
44  enum class Xord
45  {
46  SRT = 0,
47  STR,
48  RST,
49  RTS,
50  TSR,
51  TRS
52  };
53 
55  getToken(Xord enum_value)
56  {
57  using namespace UT::Literal;
58  switch (enum_value) {
59  case Xord::SRT: return "srt"_sh;
60  case Xord::STR: return "str"_sh;
61  case Xord::RST: return "rst"_sh;
62  case Xord::RTS: return "rts"_sh;
63  case Xord::TSR: return "tsr"_sh;
64  case Xord::TRS: return "trs"_sh;
65  default: UT_ASSERT(false); return ""_sh;
66  }
67  }
68 
69  enum class Rord
70  {
71  XYZ = 0,
72  XZY,
73  YXZ,
74  YZX,
75  ZXY,
76  ZYX
77  };
78 
80  getToken(Rord enum_value)
81  {
82  using namespace UT::Literal;
83  switch (enum_value) {
84  case Rord::XYZ: return "xyz"_sh;
85  case Rord::XZY: return "xzy"_sh;
86  case Rord::YXZ: return "yxz"_sh;
87  case Rord::YZX: return "yzx"_sh;
88  case Rord::ZXY: return "zxy"_sh;
89  case Rord::ZYX: return "zyx"_sh;
90  default: UT_ASSERT(false); return ""_sh;
91  }
92  }
93 
94  enum class Doclr
95  {
96  OFF = 0,
97  ON,
98  REMOVE
99  };
100 
102  getToken(Doclr enum_value)
103  {
104  using namespace UT::Literal;
105  switch (enum_value) {
106  case Doclr::OFF: return "off"_sh;
107  case Doclr::ON: return "on"_sh;
108  case Doclr::REMOVE: return "remove"_sh;
109  default: UT_ASSERT(false); return ""_sh;
110  }
111  }
112 
113  enum class Doalpha
114  {
115  OFF = 0,
116  ON,
117  REMOVE
118  };
119 
121  getToken(Doalpha enum_value)
122  {
123  using namespace UT::Literal;
124  switch (enum_value) {
125  case Doalpha::OFF: return "off"_sh;
126  case Doalpha::ON: return "on"_sh;
127  case Doalpha::REMOVE: return "remove"_sh;
128  default: UT_ASSERT(false); return ""_sh;
129  }
130  }
131 
132  enum class Docrease
133  {
134  OFF = 0,
135  ON,
136  REMOVE
137  };
138 
140  getToken(Docrease enum_value)
141  {
142  using namespace UT::Literal;
143  switch (enum_value) {
144  case Docrease::OFF: return "off"_sh;
145  case Docrease::ON: return "on"_sh;
146  case Docrease::REMOVE: return "remove"_sh;
147  default: UT_ASSERT(false); return ""_sh;
148  }
149  }
150 
151  enum class Dotexture
152  {
153  OFF = 0,
154  ON,
155  REMOVE
156  };
157 
159  getToken(Dotexture enum_value)
160  {
161  using namespace UT::Literal;
162  switch (enum_value) {
163  case Dotexture::OFF: return "off"_sh;
164  case Dotexture::ON: return "on"_sh;
165  case Dotexture::REMOVE: return "remove"_sh;
166  default: UT_ASSERT(false); return ""_sh;
167  }
168  }
169 
170  enum class Closeu
171  {
172  SAMECLOSURE = 0,
173  OPEN,
174  CLOSESHARP,
175  CLOSEROUND,
176  UNROLL,
178  };
179 
181  getToken(Closeu enum_value)
182  {
183  using namespace UT::Literal;
184  switch (enum_value) {
185  case Closeu::SAMECLOSURE: return "sameclosure"_sh;
186  case Closeu::OPEN: return "open"_sh;
187  case Closeu::CLOSESHARP: return "closesharp"_sh;
188  case Closeu::CLOSEROUND: return "closeround"_sh;
189  case Closeu::UNROLL: return "unroll"_sh;
190  case Closeu::UNROLLSHARED: return "unrollshared"_sh;
191  default: UT_ASSERT(false); return ""_sh;
192  }
193  }
194 
195  enum class Closev
196  {
197  SAMECLOSURE = 0,
198  OPEN,
199  CLOSESHARP,
200  CLOSEROUND,
201  UNROLL,
203  };
204 
206  getToken(Closev enum_value)
207  {
208  using namespace UT::Literal;
209  switch (enum_value) {
210  case Closev::SAMECLOSURE: return "sameclosure"_sh;
211  case Closev::OPEN: return "open"_sh;
212  case Closev::CLOSESHARP: return "closesharp"_sh;
213  case Closev::CLOSEROUND: return "closeround"_sh;
214  case Closev::UNROLL: return "unroll"_sh;
215  case Closev::UNROLLSHARED: return "unrollshared"_sh;
216  default: UT_ASSERT(false); return ""_sh;
217  }
218  }
219 
220  enum class Clampu
221  {
222  SAMECLAMP = 0,
223  CLAMP,
224  UNCLAMP
225  };
226 
228  getToken(Clampu enum_value)
229  {
230  using namespace UT::Literal;
231  switch (enum_value) {
232  case Clampu::SAMECLAMP: return "sameclamp"_sh;
233  case Clampu::CLAMP: return "clamp"_sh;
234  case Clampu::UNCLAMP: return "unclamp"_sh;
235  default: UT_ASSERT(false); return ""_sh;
236  }
237  }
238 
239  enum class Clampv
240  {
241  SAMECLAMP = 0,
242  CLAMP,
243  UNCLAMP
244  };
245 
247  getToken(Clampv enum_value)
248  {
249  using namespace UT::Literal;
250  switch (enum_value) {
251  case Clampv::SAMECLAMP: return "sameclamp"_sh;
252  case Clampv::CLAMP: return "clamp"_sh;
253  case Clampv::UNCLAMP: return "unclamp"_sh;
254  default: UT_ASSERT(false); return ""_sh;
255  }
256  }
257 
258  enum class Vtxsort
259  {
260  SAMEVERTEX = 0,
261  REVERSE,
262  REVERSEU,
263  REVERSEV,
264  SWAPUV,
265  SHIFT
266  };
267 
269  getToken(Vtxsort enum_value)
270  {
271  using namespace UT::Literal;
272  switch (enum_value) {
273  case Vtxsort::SAMEVERTEX: return "samevertex"_sh;
274  case Vtxsort::REVERSE: return "reverse"_sh;
275  case Vtxsort::REVERSEU: return "reverseu"_sh;
276  case Vtxsort::REVERSEV: return "reversev"_sh;
277  case Vtxsort::SWAPUV: return "swapuv"_sh;
278  case Vtxsort::SHIFT: return "shift"_sh;
279  default: UT_ASSERT(false); return ""_sh;
280  }
281  }
282 
283  enum class Prtype
284  {
285  SPHERE = 0,
286  CIRCLE,
287  LINE,
288  TUBE,
289  CAPPED,
290  ROUNDED
291  };
292 
294  getToken(Prtype enum_value)
295  {
296  using namespace UT::Literal;
297  switch (enum_value) {
298  case Prtype::SPHERE: return "sphere"_sh;
299  case Prtype::CIRCLE: return "circle"_sh;
300  case Prtype::LINE: return "line"_sh;
301  case Prtype::TUBE: return "tube"_sh;
302  case Prtype::CAPPED: return "capped"_sh;
303  case Prtype::ROUNDED: return "rounded"_sh;
304  default: UT_ASSERT(false); return ""_sh;
305  }
306  }
307 
308  enum class Volvis
309  {
310  SMOKE = 0,
311  RAINBOW,
312  ISO,
313  INVISIBLE,
314  HEIGHTFIELD,
315  IMAGE
316  };
317 
319  getToken(Volvis enum_value)
320  {
321  using namespace UT::Literal;
322  switch (enum_value) {
323  case Volvis::SMOKE: return "smoke"_sh;
324  case Volvis::RAINBOW: return "rainbow"_sh;
325  case Volvis::ISO: return "iso"_sh;
326  case Volvis::INVISIBLE: return "invisible"_sh;
327  case Volvis::HEIGHTFIELD: return "heightfield"_sh;
328  case Volvis::IMAGE: return "image"_sh;
329  default: UT_ASSERT(false); return ""_sh;
330  }
331  }
332 
333  enum class Volborder
334  {
335  CONSTANT = 0,
336  REPEAT,
337  STREAK,
338  SDF,
339  MIRROR
340  };
341 
343  getToken(Volborder enum_value)
344  {
345  using namespace UT::Literal;
346  switch (enum_value) {
347  case Volborder::CONSTANT: return "constant"_sh;
348  case Volborder::REPEAT: return "repeat"_sh;
349  case Volborder::STREAK: return "streak"_sh;
350  case Volborder::SDF: return "sdf"_sh;
351  case Volborder::MIRROR: return "mirror"_sh;
352  default: UT_ASSERT(false); return ""_sh;
353  }
354  }
355 
356  enum class Voltypeinfo
357  {
358  NONE = 0,
359  COLOR,
360  POSITION,
361  VECTOR,
362  NORMAL,
363  OFFSETNORMAL,
364  TEXTURECOORD,
365  ID,
366  MASK,
367  SDF,
368  HEIGHT
369  };
370 
372  getToken(Voltypeinfo enum_value)
373  {
374  using namespace UT::Literal;
375  switch (enum_value) {
376  case Voltypeinfo::NONE: return "none"_sh;
377  case Voltypeinfo::COLOR: return "color"_sh;
378  case Voltypeinfo::POSITION: return "position"_sh;
379  case Voltypeinfo::VECTOR: return "vector"_sh;
380  case Voltypeinfo::NORMAL: return "normal"_sh;
381  case Voltypeinfo::OFFSETNORMAL: return "offsetnormal"_sh;
382  case Voltypeinfo::TEXTURECOORD: return "texturecoord"_sh;
383  case Voltypeinfo::ID: return "id"_sh;
384  case Voltypeinfo::MASK: return "mask"_sh;
385  case Voltypeinfo::SDF: return "sdf"_sh;
386  case Voltypeinfo::HEIGHT: return "height"_sh;
387  default: UT_ASSERT(false); return ""_sh;
388  }
389  }
390 
391 }
392 
393 
395 {
396 public:
397  static int version() { return 1; }
398 
400  {
401  myGroup = ""_UTsh;
402  myDoXform = false;
403  myDoRot = 0;
404  myXord = 0;
405  myRord = 0;
406  myT = UT_Vector3D(0,0,0);
407  myR = UT_Vector3D(0,0,0);
408  myS = UT_Vector3D(1,1,1);
409  myShear = UT_Vector3D(0,0,0);
410  myP = UT_Vector3D(0,0,0);
411  myPr = UT_Vector3D(0,0,0);
412  myLookatpath = ""_UTsh;
413  myUpvector = UT_Vector3D(0,0,0);
414  myXformattribs = "N"_UTsh;
415  myDoclr = 0;
416  myDiff = UT_Vector3D(0,0,0);
417  myDoalpha = 0;
418  myAlpha = 0;
419  myDocrease = 0;
420  myCrease = 0;
421  myDotexture = 0;
422  myTexture = ""_UTsh;
423  myCloseu = 0;
424  myClosev = 0;
425  myClampu = 0;
426  myClampv = 0;
427  myVtxsort = 0;
428  myVtxuoff = 0;
429  myVtxvoff = 0;
430  myDoweight = false;
431  myMetaweight = 0;
432  myDoprender = false;
433  myPrtype = 0;
434  myPrsize = 0.05;
435  myPrblur = 0;
436  myDovolvis = false;
437  myVolvis = 0;
438  myVolvisiso = 0;
439  myVolvisdensity = 1;
440  myDotaper = false;
441  myTaper = UT_Vector2D(1,1);
442  myDovolume = false;
443  myVolborder = 0;
444  myVolborderval = 0;
445  myDovoltol = false;
446  myVoltol = 0;
447  myDovoltypeinfo = false;
448  myVoltypeinfo = 0;
449  myDovistile = false;
450  myVistile = 1;
451  myDovdbclass = false;
452  myVdbclass = 0;
453  myDovdbcreator = false;
454  myVdbcreator = ""_UTsh;
455  myDovdbtransform = false;
456  myVdbtransform = false;
457  myDovdbvectype = false;
458  myVdbvectype = 0;
459  myDovdbhalf = false;
460  myVdbhalf = false;
461  myTemplategrp = ""_UTsh;
462  myPshapeu = false;
463  myPshapev = false;
464 
465  }
466 
467  explicit SOP_PrimitiveParms(const SOP_PrimitiveParms &) = default;
468  SOP_PrimitiveParms &operator=(const SOP_PrimitiveParms &) = default;
469  SOP_PrimitiveParms(SOP_PrimitiveParms &&) noexcept = default;
470  SOP_PrimitiveParms &operator=(SOP_PrimitiveParms &&) noexcept = default;
471 
472  ~SOP_PrimitiveParms() override {}
473 
474  bool operator==(const SOP_PrimitiveParms &src) const
475  {
476  if (myGroup != src.myGroup) return false;
477  if (myDoXform != src.myDoXform) return false;
478  if (myDoRot != src.myDoRot) return false;
479  if (myXord != src.myXord) return false;
480  if (myRord != src.myRord) return false;
481  if (myT != src.myT) return false;
482  if (myR != src.myR) return false;
483  if (myS != src.myS) return false;
484  if (myShear != src.myShear) return false;
485  if (myP != src.myP) return false;
486  if (myPr != src.myPr) return false;
487  if (myLookatpath != src.myLookatpath) return false;
488  if (myUpvector != src.myUpvector) return false;
489  if (myXformattribs != src.myXformattribs) return false;
490  if (myDoclr != src.myDoclr) return false;
491  if (myDiff != src.myDiff) return false;
492  if (myDoalpha != src.myDoalpha) return false;
493  if (myAlpha != src.myAlpha) return false;
494  if (myDocrease != src.myDocrease) return false;
495  if (myCrease != src.myCrease) return false;
496  if (myDotexture != src.myDotexture) return false;
497  if (myTexture != src.myTexture) return false;
498  if (myCloseu != src.myCloseu) return false;
499  if (myClosev != src.myClosev) return false;
500  if (myClampu != src.myClampu) return false;
501  if (myClampv != src.myClampv) return false;
502  if (myVtxsort != src.myVtxsort) return false;
503  if (myVtxuoff != src.myVtxuoff) return false;
504  if (myVtxvoff != src.myVtxvoff) return false;
505  if (myDoweight != src.myDoweight) return false;
506  if (myMetaweight != src.myMetaweight) return false;
507  if (myDoprender != src.myDoprender) return false;
508  if (myPrtype != src.myPrtype) return false;
509  if (myPrsize != src.myPrsize) return false;
510  if (myPrblur != src.myPrblur) return false;
511  if (myDovolvis != src.myDovolvis) return false;
512  if (myVolvis != src.myVolvis) return false;
513  if (myVolvisiso != src.myVolvisiso) return false;
514  if (myVolvisdensity != src.myVolvisdensity) return false;
515  if (myDotaper != src.myDotaper) return false;
516  if (myTaper != src.myTaper) return false;
517  if (myDovolume != src.myDovolume) return false;
518  if (myVolborder != src.myVolborder) return false;
519  if (myVolborderval != src.myVolborderval) return false;
520  if (myDovoltol != src.myDovoltol) return false;
521  if (myVoltol != src.myVoltol) return false;
522  if (myDovoltypeinfo != src.myDovoltypeinfo) return false;
523  if (myVoltypeinfo != src.myVoltypeinfo) return false;
524  if (myDovistile != src.myDovistile) return false;
525  if (myVistile != src.myVistile) return false;
526  if (myDovdbclass != src.myDovdbclass) return false;
527  if (myVdbclass != src.myVdbclass) return false;
528  if (myDovdbcreator != src.myDovdbcreator) return false;
529  if (myVdbcreator != src.myVdbcreator) return false;
530  if (myDovdbtransform != src.myDovdbtransform) return false;
531  if (myVdbtransform != src.myVdbtransform) return false;
532  if (myDovdbvectype != src.myDovdbvectype) return false;
533  if (myVdbvectype != src.myVdbvectype) return false;
534  if (myDovdbhalf != src.myDovdbhalf) return false;
535  if (myVdbhalf != src.myVdbhalf) return false;
536  if (myTemplategrp != src.myTemplategrp) return false;
537  if (myPshapeu != src.myPshapeu) return false;
538  if (myPshapev != src.myPshapev) return false;
539 
540 
541  if (baseGetSignature() != src.baseGetSignature()) return false;
542 
543  return true;
544  }
545  bool operator!=(const SOP_PrimitiveParms &src) const
546  {
547  return !operator==(src);
548  }
565 
566 
567 
568  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
569  {
570  myGroup = ""_UTsh;
571  if (true)
572  graph->evalOpParm(myGroup, nodeidx, "group", time, graph->isDirect()?nullptr:depnode);
573  myDoXform = false;
574  if (true)
575  graph->evalOpParm(myDoXform, nodeidx, "doxform", time, graph->isDirect()?nullptr:depnode);
576  myDoRot = 0;
577  if (true && ( (true&&!((((graph->getInput(nodeidx,1)>=0)==0))||((getDoXform()==0)))) ) )
578  graph->evalOpParm(myDoRot, nodeidx, "dorot", time, graph->isDirect()?nullptr:depnode);
579  myXord = 0;
580  if (true && ( (true&&!(((getDoXform()==0)))) ) )
581  graph->evalOpParm(myXord, nodeidx, "xOrd", time, graph->isDirect()?nullptr:depnode);
582  myRord = 0;
583  if (true && ( (true&&!(((getDoXform()==0)))) ) )
584  graph->evalOpParm(myRord, nodeidx, "rOrd", time, graph->isDirect()?nullptr:depnode);
585  myT = UT_Vector3D(0,0,0);
586  if (true && ( (true&&!(((getDoXform()==0)))) ) )
587  graph->evalOpParm(myT, nodeidx, "t", time, graph->isDirect()?nullptr:depnode);
588  myR = UT_Vector3D(0,0,0);
589  if (true && ( (true&&!(((getDoXform()==0)))) ) )
590  graph->evalOpParm(myR, nodeidx, "r", time, graph->isDirect()?nullptr:depnode);
591  myS = UT_Vector3D(1,1,1);
592  if (true && ( (true&&!(((getDoXform()==0)))) ) )
593  graph->evalOpParm(myS, nodeidx, "s", time, graph->isDirect()?nullptr:depnode);
594  myShear = UT_Vector3D(0,0,0);
595  if (true && ( (true&&!(((getDoXform()==0)))) ) )
596  graph->evalOpParm(myShear, nodeidx, "shear", time, graph->isDirect()?nullptr:depnode);
597  myP = UT_Vector3D(0,0,0);
598  if (true && ( (true&&!(((getDoXform()==0)))) ) )
599  graph->evalOpParm(myP, nodeidx, "p", time, graph->isDirect()?nullptr:depnode);
600  myPr = UT_Vector3D(0,0,0);
601  if (true && ( (true&&!(((getDoXform()==0)))) ) )
602  graph->evalOpParm(myPr, nodeidx, "pr", time, graph->isDirect()?nullptr:depnode);
603  myLookatpath = ""_UTsh;
604  if (true && ( (true&&!(((getDoXform()==0)))) ) )
605  graph->evalOpParm(myLookatpath, nodeidx, "lookatpath", time, graph->isDirect()?nullptr:depnode);
606  myUpvector = UT_Vector3D(0,0,0);
607  if (true && ( (true&&!(((getDoXform()==0))||((getLookatpath()=="")))) ) )
608  graph->evalOpParm(myUpvector, nodeidx, "upvector", time, graph->isDirect()?nullptr:depnode);
609  myXformattribs = "N"_UTsh;
610  if (true && ( (true&&!(((getDoXform()==0)))) ) )
611  graph->evalOpParm(myXformattribs, nodeidx, "xformattribs", time, graph->isDirect()?nullptr:depnode);
612  myDoclr = 0;
613  if (true)
614  graph->evalOpParm(myDoclr, nodeidx, "doclr", time, graph->isDirect()?nullptr:depnode);
615  myDiff = UT_Vector3D(0,0,0);
616  if (true && ( (true&&!(((int64(getDoclr())!=1)))) ) )
617  graph->evalOpParm(myDiff, nodeidx, "diff", time, graph->isDirect()?nullptr:depnode);
618  myDoalpha = 0;
619  if (true)
620  graph->evalOpParm(myDoalpha, nodeidx, "doalpha", time, graph->isDirect()?nullptr:depnode);
621  myAlpha = 0;
622  if (true && ( (true&&!(((int64(getDoalpha())!=1)))) ) )
623  graph->evalOpParm(myAlpha, nodeidx, "alpha", time, graph->isDirect()?nullptr:depnode);
624  myDocrease = 0;
625  if (true)
626  graph->evalOpParm(myDocrease, nodeidx, "docrease", time, graph->isDirect()?nullptr:depnode);
627  myCrease = 0;
628  if (true && ( (true&&!(((int64(getDocrease())!=1)))) ) )
629  graph->evalOpParm(myCrease, nodeidx, "crease", time, graph->isDirect()?nullptr:depnode);
630  myDotexture = 0;
631  if (true)
632  graph->evalOpParm(myDotexture, nodeidx, "dotexture", time, graph->isDirect()?nullptr:depnode);
633  myTexture = ""_UTsh;
634  if (true && ( (true&&!(((int64(getDotexture())!=1)))) ) )
635  graph->evalOpParm(myTexture, nodeidx, "texture", time, graph->isDirect()?nullptr:depnode);
636  myCloseu = 0;
637  if (true)
638  graph->evalOpParm(myCloseu, nodeidx, "closeu", time, graph->isDirect()?nullptr:depnode);
639  myClosev = 0;
640  if (true)
641  graph->evalOpParm(myClosev, nodeidx, "closev", time, graph->isDirect()?nullptr:depnode);
642  myClampu = 0;
643  if (true)
644  graph->evalOpParm(myClampu, nodeidx, "clampu", time, graph->isDirect()?nullptr:depnode);
645  myClampv = 0;
646  if (true)
647  graph->evalOpParm(myClampv, nodeidx, "clampv", time, graph->isDirect()?nullptr:depnode);
648  myVtxsort = 0;
649  if (true)
650  graph->evalOpParm(myVtxsort, nodeidx, "vtxsort", time, graph->isDirect()?nullptr:depnode);
651  myVtxuoff = 0;
652  if (true && ( (true&&!(((int64(getVtxsort())!=5)))) ) )
653  graph->evalOpParm(myVtxuoff, nodeidx, "vtxuoff", time, graph->isDirect()?nullptr:depnode);
654  myVtxvoff = 0;
655  if (true && ( (true&&!(((int64(getVtxsort())!=5)))) ) )
656  graph->evalOpParm(myVtxvoff, nodeidx, "vtxvoff", time, graph->isDirect()?nullptr:depnode);
657  myDoweight = false;
658  if (true)
659  graph->evalOpParm(myDoweight, nodeidx, "doweight", time, graph->isDirect()?nullptr:depnode);
660  myMetaweight = 0;
661  if (true && ( (true&&!(((getDoweight()==0)))) ) )
662  graph->evalOpParm(myMetaweight, nodeidx, "metaweight", time, graph->isDirect()?nullptr:depnode);
663  myDoprender = false;
664  if (true)
665  graph->evalOpParm(myDoprender, nodeidx, "doprender", time, graph->isDirect()?nullptr:depnode);
666  myPrtype = 0;
667  if (true && ( (true&&!(((getDoprender()==0)))) ) )
668  graph->evalOpParm(myPrtype, nodeidx, "prtype", time, graph->isDirect()?nullptr:depnode);
669  myPrsize = 0.05;
670  if (true && ( (true&&!(((getDoprender()==0)))) ) )
671  graph->evalOpParm(myPrsize, nodeidx, "prsize", time, graph->isDirect()?nullptr:depnode);
672  myPrblur = 0;
673  if (true && ( (true&&!(((getDoprender()==0)))) ) )
674  graph->evalOpParm(myPrblur, nodeidx, "prblur", time, graph->isDirect()?nullptr:depnode);
675  myDovolvis = false;
676  if (true)
677  graph->evalOpParm(myDovolvis, nodeidx, "dovolvis", time, graph->isDirect()?nullptr:depnode);
678  myVolvis = 0;
679  if (true && ( (true&&!(((getDovolvis()==0)))) ) )
680  graph->evalOpParm(myVolvis, nodeidx, "volvis", time, graph->isDirect()?nullptr:depnode);
681  myVolvisiso = 0;
682  if (true && ( (true&&!(((getDovolvis()==0)))) ) )
683  graph->evalOpParm(myVolvisiso, nodeidx, "volvisiso", time, graph->isDirect()?nullptr:depnode);
684  myVolvisdensity = 1;
685  if (true && ( (true&&!(((getDovolvis()==0)))) ) )
686  graph->evalOpParm(myVolvisdensity, nodeidx, "volvisdensity", time, graph->isDirect()?nullptr:depnode);
687  myDotaper = false;
688  if (true)
689  graph->evalOpParm(myDotaper, nodeidx, "dotaper", time, graph->isDirect()?nullptr:depnode);
690  myTaper = UT_Vector2D(1,1);
691  if (true && ( (true&&!(((getDotaper()==0)))) ) )
692  graph->evalOpParm(myTaper, nodeidx, "taper", time, graph->isDirect()?nullptr:depnode);
693  myDovolume = false;
694  if (true)
695  graph->evalOpParm(myDovolume, nodeidx, "dovolume", time, graph->isDirect()?nullptr:depnode);
696  myVolborder = 0;
697  if (true && ( (true&&!(((getDovolume()==0)))) ) )
698  graph->evalOpParm(myVolborder, nodeidx, "volborder", time, graph->isDirect()?nullptr:depnode);
699  myVolborderval = 0;
700  if (true && ( (true&&!(((getDovolume()==0)))) ) )
701  graph->evalOpParm(myVolborderval, nodeidx, "volborderval", time, graph->isDirect()?nullptr:depnode);
702  myDovoltol = false;
703  if (true)
704  graph->evalOpParm(myDovoltol, nodeidx, "dovoltol", time, graph->isDirect()?nullptr:depnode);
705  myVoltol = 0;
706  if (true && ( (true&&!(((getDovoltol()==0)))) ) )
707  graph->evalOpParm(myVoltol, nodeidx, "voltol", time, graph->isDirect()?nullptr:depnode);
708  myDovoltypeinfo = false;
709  if (true)
710  graph->evalOpParm(myDovoltypeinfo, nodeidx, "dovoltypeinfo", time, graph->isDirect()?nullptr:depnode);
711  myVoltypeinfo = 0;
712  if (true && ( (true&&!(((getDovoltypeinfo()==0)))) ) )
713  graph->evalOpParm(myVoltypeinfo, nodeidx, "voltypeinfo", time, graph->isDirect()?nullptr:depnode);
714  myDovistile = false;
715  if (true)
716  graph->evalOpParm(myDovistile, nodeidx, "dovistile", time, graph->isDirect()?nullptr:depnode);
717  myVistile = 1;
718  if (true && ( (true&&!(((getDovistile()==0)))) ) )
719  graph->evalOpParm(myVistile, nodeidx, "vistile", time, graph->isDirect()?nullptr:depnode);
720  myDovdbclass = false;
721  if (true)
722  graph->evalOpParm(myDovdbclass, nodeidx, "dovdbclass", time, graph->isDirect()?nullptr:depnode);
723  myVdbclass = 0;
724  if (true && ( (true&&!(((getDovdbclass()==0)))) ) )
725  graph->evalOpParm(myVdbclass, nodeidx, "vdbclass", time, graph->isDirect()?nullptr:depnode);
726  myDovdbcreator = false;
727  if (true)
728  graph->evalOpParm(myDovdbcreator, nodeidx, "dovdbcreator", time, graph->isDirect()?nullptr:depnode);
729  myVdbcreator = ""_UTsh;
730  if (true && ( (true&&!(((getDovdbcreator()==0)))) ) )
731  graph->evalOpParm(myVdbcreator, nodeidx, "vdbcreator", time, graph->isDirect()?nullptr:depnode);
732  myDovdbtransform = false;
733  if (true)
734  graph->evalOpParm(myDovdbtransform, nodeidx, "dovdbtransform", time, graph->isDirect()?nullptr:depnode);
735  myVdbtransform = false;
736  if (true && ( (true&&!(((getDovdbtransform()==0)))) ) )
737  graph->evalOpParm(myVdbtransform, nodeidx, "vdbtransform", time, graph->isDirect()?nullptr:depnode);
738  myDovdbvectype = false;
739  if (true)
740  graph->evalOpParm(myDovdbvectype, nodeidx, "dovdbvectype", time, graph->isDirect()?nullptr:depnode);
741  myVdbvectype = 0;
742  if (true && ( (true&&!(((getDovdbvectype()==0)))) ) )
743  graph->evalOpParm(myVdbvectype, nodeidx, "vdbvectype", time, graph->isDirect()?nullptr:depnode);
744  myDovdbhalf = false;
745  if (true)
746  graph->evalOpParm(myDovdbhalf, nodeidx, "dovdbhalf", time, graph->isDirect()?nullptr:depnode);
747  myVdbhalf = false;
748  if (true && ( (true&&!(((getDovdbhalf()==0)))) ) )
749  graph->evalOpParm(myVdbhalf, nodeidx, "vdbhalf", time, graph->isDirect()?nullptr:depnode);
750  myTemplategrp = ""_UTsh;
751  if (true && ( (true&&!((((graph->getInput(nodeidx,1)>=0)==0))||((getDoXform()==0)))) ) )
752  graph->evalOpParm(myTemplategrp, nodeidx, "templateGrp", time, graph->isDirect()?nullptr:depnode);
753  myPshapeu = false;
754  if (true && ( (true&&!(((int64(getCloseu())==0)&&(int64(getClampu())==0)))) ) )
755  graph->evalOpParm(myPshapeu, nodeidx, "pshapeu", time, graph->isDirect()?nullptr:depnode);
756  myPshapev = false;
757  if (true && ( (true&&!(((int64(getClosev())==0)&&(int64(getClampv())==0)))) ) )
758  graph->evalOpParm(myPshapev, nodeidx, "pshapev", time, graph->isDirect()?nullptr:depnode);
759 
760  }
761 
762 
763  void loadFromOpSubclass(const LoadParms &loadparms) override
764  {
765  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
766  }
767 
768 
769  void copyFrom(const OP_NodeParms *src) override
770  {
771  *this = *((const SOP_PrimitiveParms *)src);
772  }
773 
774  template <typename T>
775  void
776  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
777  {
778  if (idx.size() < 1)
779  return;
780  UT_ASSERT(idx.size() == instance.size()+1);
781  if (idx.size() != instance.size()+1)
782  return;
783  switch (idx[0])
784  {
785  case 0:
786  coerceValue(value, myGroup);
787  break;
788  case 1:
789  coerceValue(value, myDoXform);
790  break;
791  case 2:
792  coerceValue(value, myDoRot);
793  break;
794  case 3:
795  coerceValue(value, myXord);
796  break;
797  case 4:
798  coerceValue(value, myRord);
799  break;
800  case 5:
801  coerceValue(value, myT);
802  break;
803  case 6:
804  coerceValue(value, myR);
805  break;
806  case 7:
807  coerceValue(value, myS);
808  break;
809  case 8:
810  coerceValue(value, myShear);
811  break;
812  case 9:
813  coerceValue(value, myP);
814  break;
815  case 10:
816  coerceValue(value, myPr);
817  break;
818  case 11:
819  coerceValue(value, myLookatpath);
820  break;
821  case 12:
822  coerceValue(value, myUpvector);
823  break;
824  case 13:
825  coerceValue(value, myXformattribs);
826  break;
827  case 14:
828  coerceValue(value, myDoclr);
829  break;
830  case 15:
831  coerceValue(value, myDiff);
832  break;
833  case 16:
834  coerceValue(value, myDoalpha);
835  break;
836  case 17:
837  coerceValue(value, myAlpha);
838  break;
839  case 18:
840  coerceValue(value, myDocrease);
841  break;
842  case 19:
843  coerceValue(value, myCrease);
844  break;
845  case 20:
846  coerceValue(value, myDotexture);
847  break;
848  case 21:
849  coerceValue(value, myTexture);
850  break;
851  case 22:
852  coerceValue(value, myCloseu);
853  break;
854  case 23:
855  coerceValue(value, myClosev);
856  break;
857  case 24:
858  coerceValue(value, myClampu);
859  break;
860  case 25:
861  coerceValue(value, myClampv);
862  break;
863  case 26:
864  coerceValue(value, myVtxsort);
865  break;
866  case 27:
867  coerceValue(value, myVtxuoff);
868  break;
869  case 28:
870  coerceValue(value, myVtxvoff);
871  break;
872  case 29:
873  coerceValue(value, myDoweight);
874  break;
875  case 30:
876  coerceValue(value, myMetaweight);
877  break;
878  case 31:
879  coerceValue(value, myDoprender);
880  break;
881  case 32:
882  coerceValue(value, myPrtype);
883  break;
884  case 33:
885  coerceValue(value, myPrsize);
886  break;
887  case 34:
888  coerceValue(value, myPrblur);
889  break;
890  case 35:
891  coerceValue(value, myDovolvis);
892  break;
893  case 36:
894  coerceValue(value, myVolvis);
895  break;
896  case 37:
897  coerceValue(value, myVolvisiso);
898  break;
899  case 38:
900  coerceValue(value, myVolvisdensity);
901  break;
902  case 39:
903  coerceValue(value, myDotaper);
904  break;
905  case 40:
906  coerceValue(value, myTaper);
907  break;
908  case 41:
909  coerceValue(value, myDovolume);
910  break;
911  case 42:
912  coerceValue(value, myVolborder);
913  break;
914  case 43:
915  coerceValue(value, myVolborderval);
916  break;
917  case 44:
918  coerceValue(value, myDovoltol);
919  break;
920  case 45:
921  coerceValue(value, myVoltol);
922  break;
923  case 46:
924  coerceValue(value, myDovoltypeinfo);
925  break;
926  case 47:
927  coerceValue(value, myVoltypeinfo);
928  break;
929  case 48:
930  coerceValue(value, myDovistile);
931  break;
932  case 49:
933  coerceValue(value, myVistile);
934  break;
935  case 50:
936  coerceValue(value, myDovdbclass);
937  break;
938  case 51:
939  coerceValue(value, myVdbclass);
940  break;
941  case 52:
942  coerceValue(value, myDovdbcreator);
943  break;
944  case 53:
945  coerceValue(value, myVdbcreator);
946  break;
947  case 54:
948  coerceValue(value, myDovdbtransform);
949  break;
950  case 55:
951  coerceValue(value, myVdbtransform);
952  break;
953  case 56:
954  coerceValue(value, myDovdbvectype);
955  break;
956  case 57:
957  coerceValue(value, myVdbvectype);
958  break;
959  case 58:
960  coerceValue(value, myDovdbhalf);
961  break;
962  case 59:
963  coerceValue(value, myVdbhalf);
964  break;
965  case 60:
966  coerceValue(value, myTemplategrp);
967  break;
968  case 61:
969  coerceValue(value, myPshapeu);
970  break;
971  case 62:
972  coerceValue(value, myPshapev);
973  break;
974 
975  }
976  }
977 
978  bool isParmColorRamp(exint idx) const override
979  {
980  switch (idx)
981  {
982 
983  }
984  return false;
985  }
986 
987  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
988  { doGetParmValue(idx, instance, value); }
989  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
990  { doGetParmValue(idx, instance, value); }
991  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
992  { doGetParmValue(idx, instance, value); }
993  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
994  { doGetParmValue(idx, instance, value); }
995  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
996  { doGetParmValue(idx, instance, value); }
997  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
998  { doGetParmValue(idx, instance, value); }
999  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
1000  { doGetParmValue(idx, instance, value); }
1001  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
1002  { doGetParmValue(idx, instance, value); }
1003  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
1004  { doGetParmValue(idx, instance, value); }
1005  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
1006  { doGetParmValue(idx, instance, value); }
1007  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
1008  { doGetParmValue(idx, instance, value); }
1009 
1010  template <typename T>
1011  void
1012  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
1013  {
1014  if (idx.size() < 1)
1015  return;
1016  UT_ASSERT(idx.size() == instance.size()+1);
1017  if (idx.size() != instance.size()+1)
1018  return;
1019  switch (idx[0])
1020  {
1021  case 0:
1022  coerceValue(myGroup, ( ( value ) ));
1023  break;
1024  case 1:
1025  coerceValue(myDoXform, ( ( value ) ));
1026  break;
1027  case 2:
1028  coerceValue(myDoRot, clampMinValue(0, clampMaxValue(2, value ) ));
1029  break;
1030  case 3:
1031  coerceValue(myXord, clampMinValue(0, clampMaxValue(5, value ) ));
1032  break;
1033  case 4:
1034  coerceValue(myRord, clampMinValue(0, clampMaxValue(5, value ) ));
1035  break;
1036  case 5:
1037  coerceValue(myT, ( ( value ) ));
1038  break;
1039  case 6:
1040  coerceValue(myR, ( ( value ) ));
1041  break;
1042  case 7:
1043  coerceValue(myS, ( ( value ) ));
1044  break;
1045  case 8:
1046  coerceValue(myShear, ( ( value ) ));
1047  break;
1048  case 9:
1049  coerceValue(myP, ( ( value ) ));
1050  break;
1051  case 10:
1052  coerceValue(myPr, ( ( value ) ));
1053  break;
1054  case 11:
1055  coerceValue(myLookatpath, ( ( value ) ));
1056  break;
1057  case 12:
1058  coerceValue(myUpvector, ( ( value ) ));
1059  break;
1060  case 13:
1061  coerceValue(myXformattribs, ( ( value ) ));
1062  break;
1063  case 14:
1064  coerceValue(myDoclr, clampMinValue(0, clampMaxValue(2, value ) ));
1065  break;
1066  case 15:
1067  coerceValue(myDiff, ( ( value ) ));
1068  break;
1069  case 16:
1070  coerceValue(myDoalpha, clampMinValue(0, clampMaxValue(2, value ) ));
1071  break;
1072  case 17:
1073  coerceValue(myAlpha, ( ( value ) ));
1074  break;
1075  case 18:
1076  coerceValue(myDocrease, clampMinValue(0, clampMaxValue(2, value ) ));
1077  break;
1078  case 19:
1079  coerceValue(myCrease, ( ( value ) ));
1080  break;
1081  case 20:
1082  coerceValue(myDotexture, clampMinValue(0, clampMaxValue(2, value ) ));
1083  break;
1084  case 21:
1085  coerceValue(myTexture, ( ( value ) ));
1086  break;
1087  case 22:
1088  coerceValue(myCloseu, clampMinValue(0, clampMaxValue(5, value ) ));
1089  break;
1090  case 23:
1091  coerceValue(myClosev, clampMinValue(0, clampMaxValue(5, value ) ));
1092  break;
1093  case 24:
1094  coerceValue(myClampu, clampMinValue(0, clampMaxValue(2, value ) ));
1095  break;
1096  case 25:
1097  coerceValue(myClampv, clampMinValue(0, clampMaxValue(2, value ) ));
1098  break;
1099  case 26:
1100  coerceValue(myVtxsort, clampMinValue(0, clampMaxValue(5, value ) ));
1101  break;
1102  case 27:
1103  coerceValue(myVtxuoff, ( ( value ) ));
1104  break;
1105  case 28:
1106  coerceValue(myVtxvoff, ( ( value ) ));
1107  break;
1108  case 29:
1109  coerceValue(myDoweight, ( ( value ) ));
1110  break;
1111  case 30:
1112  coerceValue(myMetaweight, ( ( value ) ));
1113  break;
1114  case 31:
1115  coerceValue(myDoprender, ( ( value ) ));
1116  break;
1117  case 32:
1118  coerceValue(myPrtype, clampMinValue(0, clampMaxValue(5, value ) ));
1119  break;
1120  case 33:
1121  coerceValue(myPrsize, ( ( value ) ));
1122  break;
1123  case 34:
1124  coerceValue(myPrblur, ( ( value ) ));
1125  break;
1126  case 35:
1127  coerceValue(myDovolvis, ( ( value ) ));
1128  break;
1129  case 36:
1130  coerceValue(myVolvis, clampMinValue(0, clampMaxValue(5, value ) ));
1131  break;
1132  case 37:
1133  coerceValue(myVolvisiso, ( ( value ) ));
1134  break;
1135  case 38:
1136  coerceValue(myVolvisdensity, ( ( value ) ));
1137  break;
1138  case 39:
1139  coerceValue(myDotaper, ( ( value ) ));
1140  break;
1141  case 40:
1142  coerceValue(myTaper, ( ( value ) ));
1143  break;
1144  case 41:
1145  coerceValue(myDovolume, ( ( value ) ));
1146  break;
1147  case 42:
1148  coerceValue(myVolborder, clampMinValue(0, clampMaxValue(4, value ) ));
1149  break;
1150  case 43:
1151  coerceValue(myVolborderval, ( ( value ) ));
1152  break;
1153  case 44:
1154  coerceValue(myDovoltol, ( ( value ) ));
1155  break;
1156  case 45:
1157  coerceValue(myVoltol, ( ( value ) ));
1158  break;
1159  case 46:
1160  coerceValue(myDovoltypeinfo, ( ( value ) ));
1161  break;
1162  case 47:
1163  coerceValue(myVoltypeinfo, clampMinValue(0, clampMaxValue(10, value ) ));
1164  break;
1165  case 48:
1166  coerceValue(myDovistile, ( ( value ) ));
1167  break;
1168  case 49:
1169  coerceValue(myVistile, ( ( value ) ));
1170  break;
1171  case 50:
1172  coerceValue(myDovdbclass, ( ( value ) ));
1173  break;
1174  case 51:
1175  coerceValue(myVdbclass, ( ( value ) ));
1176  break;
1177  case 52:
1178  coerceValue(myDovdbcreator, ( ( value ) ));
1179  break;
1180  case 53:
1181  coerceValue(myVdbcreator, ( ( value ) ));
1182  break;
1183  case 54:
1184  coerceValue(myDovdbtransform, ( ( value ) ));
1185  break;
1186  case 55:
1187  coerceValue(myVdbtransform, ( ( value ) ));
1188  break;
1189  case 56:
1190  coerceValue(myDovdbvectype, ( ( value ) ));
1191  break;
1192  case 57:
1193  coerceValue(myVdbvectype, ( ( value ) ));
1194  break;
1195  case 58:
1196  coerceValue(myDovdbhalf, ( ( value ) ));
1197  break;
1198  case 59:
1199  coerceValue(myVdbhalf, ( ( value ) ));
1200  break;
1201  case 60:
1202  coerceValue(myTemplategrp, ( ( value ) ));
1203  break;
1204  case 61:
1205  coerceValue(myPshapeu, ( ( value ) ));
1206  break;
1207  case 62:
1208  coerceValue(myPshapev, ( ( value ) ));
1209  break;
1210 
1211  }
1212  }
1213 
1214  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
1215  { doSetParmValue(idx, instance, value); }
1216  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
1217  { doSetParmValue(idx, instance, value); }
1218  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
1219  { doSetParmValue(idx, instance, value); }
1220  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
1221  { doSetParmValue(idx, instance, value); }
1222  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
1223  { doSetParmValue(idx, instance, value); }
1224  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
1225  { doSetParmValue(idx, instance, value); }
1226  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
1227  { doSetParmValue(idx, instance, value); }
1228  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
1229  { doSetParmValue(idx, instance, value); }
1230  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
1231  { doSetParmValue(idx, instance, value); }
1232  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
1233  { doSetParmValue(idx, instance, value); }
1234  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
1235  { doSetParmValue(idx, instance, value); }
1236 
1237  exint getNestNumParms(TempIndex idx) const override
1238  {
1239  if (idx.size() == 0)
1240  return 63;
1241  switch (idx[0])
1242  {
1243 
1244  }
1245  // Invalid
1246  return 0;
1247  }
1248 
1249  const char *getNestParmName(TempIndex fieldnum) const override
1250  {
1251  if (fieldnum.size() < 1)
1252  return 0;
1253  switch (fieldnum[0])
1254  {
1255  case 0:
1256  return "group";
1257  case 1:
1258  return "doxform";
1259  case 2:
1260  return "dorot";
1261  case 3:
1262  return "xOrd";
1263  case 4:
1264  return "rOrd";
1265  case 5:
1266  return "t";
1267  case 6:
1268  return "r";
1269  case 7:
1270  return "s";
1271  case 8:
1272  return "shear";
1273  case 9:
1274  return "p";
1275  case 10:
1276  return "pr";
1277  case 11:
1278  return "lookatpath";
1279  case 12:
1280  return "upvector";
1281  case 13:
1282  return "xformattribs";
1283  case 14:
1284  return "doclr";
1285  case 15:
1286  return "diff";
1287  case 16:
1288  return "doalpha";
1289  case 17:
1290  return "alpha";
1291  case 18:
1292  return "docrease";
1293  case 19:
1294  return "crease";
1295  case 20:
1296  return "dotexture";
1297  case 21:
1298  return "texture";
1299  case 22:
1300  return "closeu";
1301  case 23:
1302  return "closev";
1303  case 24:
1304  return "clampu";
1305  case 25:
1306  return "clampv";
1307  case 26:
1308  return "vtxsort";
1309  case 27:
1310  return "vtxuoff";
1311  case 28:
1312  return "vtxvoff";
1313  case 29:
1314  return "doweight";
1315  case 30:
1316  return "metaweight";
1317  case 31:
1318  return "doprender";
1319  case 32:
1320  return "prtype";
1321  case 33:
1322  return "prsize";
1323  case 34:
1324  return "prblur";
1325  case 35:
1326  return "dovolvis";
1327  case 36:
1328  return "volvis";
1329  case 37:
1330  return "volvisiso";
1331  case 38:
1332  return "volvisdensity";
1333  case 39:
1334  return "dotaper";
1335  case 40:
1336  return "taper";
1337  case 41:
1338  return "dovolume";
1339  case 42:
1340  return "volborder";
1341  case 43:
1342  return "volborderval";
1343  case 44:
1344  return "dovoltol";
1345  case 45:
1346  return "voltol";
1347  case 46:
1348  return "dovoltypeinfo";
1349  case 47:
1350  return "voltypeinfo";
1351  case 48:
1352  return "dovistile";
1353  case 49:
1354  return "vistile";
1355  case 50:
1356  return "dovdbclass";
1357  case 51:
1358  return "vdbclass";
1359  case 52:
1360  return "dovdbcreator";
1361  case 53:
1362  return "vdbcreator";
1363  case 54:
1364  return "dovdbtransform";
1365  case 55:
1366  return "vdbtransform";
1367  case 56:
1368  return "dovdbvectype";
1369  case 57:
1370  return "vdbvectype";
1371  case 58:
1372  return "dovdbhalf";
1373  case 59:
1374  return "vdbhalf";
1375  case 60:
1376  return "templateGrp";
1377  case 61:
1378  return "pshapeu";
1379  case 62:
1380  return "pshapev";
1381 
1382  }
1383  return 0;
1384  }
1385 
1386  ParmType getNestParmType(TempIndex fieldnum) const override
1387  {
1388  if (fieldnum.size() < 1)
1389  return PARM_UNSUPPORTED;
1390  switch (fieldnum[0])
1391  {
1392  case 0:
1393  return PARM_STRING;
1394  case 1:
1395  return PARM_INTEGER;
1396  case 2:
1397  return PARM_INTEGER;
1398  case 3:
1399  return PARM_INTEGER;
1400  case 4:
1401  return PARM_INTEGER;
1402  case 5:
1403  return PARM_VECTOR3;
1404  case 6:
1405  return PARM_VECTOR3;
1406  case 7:
1407  return PARM_VECTOR3;
1408  case 8:
1409  return PARM_VECTOR3;
1410  case 9:
1411  return PARM_VECTOR3;
1412  case 10:
1413  return PARM_VECTOR3;
1414  case 11:
1415  return PARM_STRING;
1416  case 12:
1417  return PARM_VECTOR3;
1418  case 13:
1419  return PARM_STRING;
1420  case 14:
1421  return PARM_INTEGER;
1422  case 15:
1423  return PARM_VECTOR3;
1424  case 16:
1425  return PARM_INTEGER;
1426  case 17:
1427  return PARM_FLOAT;
1428  case 18:
1429  return PARM_INTEGER;
1430  case 19:
1431  return PARM_FLOAT;
1432  case 20:
1433  return PARM_INTEGER;
1434  case 21:
1435  return PARM_STRING;
1436  case 22:
1437  return PARM_INTEGER;
1438  case 23:
1439  return PARM_INTEGER;
1440  case 24:
1441  return PARM_INTEGER;
1442  case 25:
1443  return PARM_INTEGER;
1444  case 26:
1445  return PARM_INTEGER;
1446  case 27:
1447  return PARM_INTEGER;
1448  case 28:
1449  return PARM_INTEGER;
1450  case 29:
1451  return PARM_INTEGER;
1452  case 30:
1453  return PARM_FLOAT;
1454  case 31:
1455  return PARM_INTEGER;
1456  case 32:
1457  return PARM_INTEGER;
1458  case 33:
1459  return PARM_FLOAT;
1460  case 34:
1461  return PARM_FLOAT;
1462  case 35:
1463  return PARM_INTEGER;
1464  case 36:
1465  return PARM_INTEGER;
1466  case 37:
1467  return PARM_FLOAT;
1468  case 38:
1469  return PARM_FLOAT;
1470  case 39:
1471  return PARM_INTEGER;
1472  case 40:
1473  return PARM_VECTOR2;
1474  case 41:
1475  return PARM_INTEGER;
1476  case 42:
1477  return PARM_INTEGER;
1478  case 43:
1479  return PARM_FLOAT;
1480  case 44:
1481  return PARM_INTEGER;
1482  case 45:
1483  return PARM_FLOAT;
1484  case 46:
1485  return PARM_INTEGER;
1486  case 47:
1487  return PARM_INTEGER;
1488  case 48:
1489  return PARM_INTEGER;
1490  case 49:
1491  return PARM_FLOAT;
1492  case 50:
1493  return PARM_INTEGER;
1494  case 51:
1495  return PARM_INTEGER;
1496  case 52:
1497  return PARM_INTEGER;
1498  case 53:
1499  return PARM_STRING;
1500  case 54:
1501  return PARM_INTEGER;
1502  case 55:
1503  return PARM_INTEGER;
1504  case 56:
1505  return PARM_INTEGER;
1506  case 57:
1507  return PARM_INTEGER;
1508  case 58:
1509  return PARM_INTEGER;
1510  case 59:
1511  return PARM_INTEGER;
1512  case 60:
1513  return PARM_STRING;
1514  case 61:
1515  return PARM_INTEGER;
1516  case 62:
1517  return PARM_INTEGER;
1518 
1519  }
1520  return PARM_UNSUPPORTED;
1521  }
1522 
1523  // Boiler plate to load individual types.
1524  static void loadData(UT_IStream &is, int64 &v)
1525  { is.bread(&v, 1); }
1526  static void loadData(UT_IStream &is, bool &v)
1527  { int64 iv; is.bread(&iv, 1); v = iv; }
1528  static void loadData(UT_IStream &is, fpreal64 &v)
1529  { is.bread<fpreal64>(&v, 1); }
1530  static void loadData(UT_IStream &is, UT_Vector2D &v)
1531  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
1532  static void loadData(UT_IStream &is, UT_Vector3D &v)
1533  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
1534  is.bread<fpreal64>(&v.z(), 1); }
1535  static void loadData(UT_IStream &is, UT_Vector4D &v)
1536  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
1537  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
1538  static void loadData(UT_IStream &is, UT_Matrix2D &v)
1539  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
1540  static void loadData(UT_IStream &is, UT_Matrix3D &v)
1541  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
1542  static void loadData(UT_IStream &is, UT_Matrix4D &v)
1543  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
1544  static void loadData(UT_IStream &is, UT_Vector2I &v)
1545  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
1546  static void loadData(UT_IStream &is, UT_Vector3I &v)
1547  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
1548  is.bread<int64>(&v.z(), 1); }
1549  static void loadData(UT_IStream &is, UT_Vector4I &v)
1550  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
1551  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
1553  { is.bread(v); }
1555  { UT_StringHolder rampdata;
1556  loadData(is, rampdata);
1557  if (rampdata.isstring())
1558  {
1559  v.reset(new UT_Ramp());
1560  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
1561  v->load(istr);
1562  }
1563  else v.reset();
1564  }
1567  loadData(is, data);
1568  if (data.isstring())
1569  {
1570  // Find the data type.
1571  const char *colon = UT_StringWrap(data).findChar(':');
1572  if (colon)
1573  {
1574  int typelen = colon - data.buffer();
1576  type.strncpy(data.buffer(), typelen);
1577  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
1578 
1579  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
1580  }
1581  }
1582  else v.reset();
1583  }
1584 
1585  static void saveData(std::ostream &os, int64 v)
1586  { UTwrite(os, &v); }
1587  static void saveData(std::ostream &os, bool v)
1588  { int64 iv = v; UTwrite(os, &iv); }
1589  static void saveData(std::ostream &os, fpreal64 v)
1590  { UTwrite<fpreal64>(os, &v); }
1591  static void saveData(std::ostream &os, UT_Vector2D v)
1592  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
1593  static void saveData(std::ostream &os, UT_Vector3D v)
1594  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
1595  UTwrite<fpreal64>(os, &v.z()); }
1596  static void saveData(std::ostream &os, UT_Vector4D v)
1597  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
1598  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
1599  static void saveData(std::ostream &os, UT_Matrix2D v)
1601  static void saveData(std::ostream &os, UT_Matrix3D v)
1603  static void saveData(std::ostream &os, UT_Matrix4D v)
1605  static void saveData(std::ostream &os, UT_StringHolder s)
1606  { UT_StringWrap(s).saveBinary(os); }
1607  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
1609  UT_OStringStream ostr;
1610  if (s) s->save(ostr);
1611  result = ostr.str();
1612  saveData(os, result);
1613  }
1614  static void saveData(std::ostream &os, PRM_DataItemHandle s)
1616  UT_OStringStream ostr;
1617  if (s)
1618  {
1619  ostr << s->getDataTypeToken();
1620  ostr << ":";
1621  s->saveBinary(ostr);
1622  }
1623  result = ostr.str();
1624  saveData(os, result);
1625  }
1626 
1627 
1628  void save(std::ostream &os) const
1629  {
1630  int32 v = version();
1631  UTwrite(os, &v);
1632  saveData(os, myGroup);
1633  saveData(os, myDoXform);
1634  saveData(os, myDoRot);
1635  saveData(os, myXord);
1636  saveData(os, myRord);
1637  saveData(os, myT);
1638  saveData(os, myR);
1639  saveData(os, myS);
1640  saveData(os, myShear);
1641  saveData(os, myP);
1642  saveData(os, myPr);
1643  saveData(os, myLookatpath);
1644  saveData(os, myUpvector);
1645  saveData(os, myXformattribs);
1646  saveData(os, myDoclr);
1647  saveData(os, myDiff);
1648  saveData(os, myDoalpha);
1649  saveData(os, myAlpha);
1650  saveData(os, myDocrease);
1651  saveData(os, myCrease);
1652  saveData(os, myDotexture);
1653  saveData(os, myTexture);
1654  saveData(os, myCloseu);
1655  saveData(os, myClosev);
1656  saveData(os, myClampu);
1657  saveData(os, myClampv);
1658  saveData(os, myVtxsort);
1659  saveData(os, myVtxuoff);
1660  saveData(os, myVtxvoff);
1661  saveData(os, myDoweight);
1662  saveData(os, myMetaweight);
1663  saveData(os, myDoprender);
1664  saveData(os, myPrtype);
1665  saveData(os, myPrsize);
1666  saveData(os, myPrblur);
1667  saveData(os, myDovolvis);
1668  saveData(os, myVolvis);
1669  saveData(os, myVolvisiso);
1670  saveData(os, myVolvisdensity);
1671  saveData(os, myDotaper);
1672  saveData(os, myTaper);
1673  saveData(os, myDovolume);
1674  saveData(os, myVolborder);
1675  saveData(os, myVolborderval);
1676  saveData(os, myDovoltol);
1677  saveData(os, myVoltol);
1678  saveData(os, myDovoltypeinfo);
1679  saveData(os, myVoltypeinfo);
1680  saveData(os, myDovistile);
1681  saveData(os, myVistile);
1682  saveData(os, myDovdbclass);
1683  saveData(os, myVdbclass);
1684  saveData(os, myDovdbcreator);
1685  saveData(os, myVdbcreator);
1686  saveData(os, myDovdbtransform);
1687  saveData(os, myVdbtransform);
1688  saveData(os, myDovdbvectype);
1689  saveData(os, myVdbvectype);
1690  saveData(os, myDovdbhalf);
1691  saveData(os, myVdbhalf);
1692  saveData(os, myTemplategrp);
1693  saveData(os, myPshapeu);
1694  saveData(os, myPshapev);
1695 
1696  }
1697 
1698  bool load(UT_IStream &is)
1699  {
1700  int32 v;
1701  is.bread(&v, 1);
1702  if (version() != v)
1703  {
1704  // Fail incompatible versions
1705  return false;
1706  }
1707  loadData(is, myGroup);
1708  loadData(is, myDoXform);
1709  loadData(is, myDoRot);
1710  loadData(is, myXord);
1711  loadData(is, myRord);
1712  loadData(is, myT);
1713  loadData(is, myR);
1714  loadData(is, myS);
1715  loadData(is, myShear);
1716  loadData(is, myP);
1717  loadData(is, myPr);
1718  loadData(is, myLookatpath);
1719  loadData(is, myUpvector);
1720  loadData(is, myXformattribs);
1721  loadData(is, myDoclr);
1722  loadData(is, myDiff);
1723  loadData(is, myDoalpha);
1724  loadData(is, myAlpha);
1725  loadData(is, myDocrease);
1726  loadData(is, myCrease);
1727  loadData(is, myDotexture);
1728  loadData(is, myTexture);
1729  loadData(is, myCloseu);
1730  loadData(is, myClosev);
1731  loadData(is, myClampu);
1732  loadData(is, myClampv);
1733  loadData(is, myVtxsort);
1734  loadData(is, myVtxuoff);
1735  loadData(is, myVtxvoff);
1736  loadData(is, myDoweight);
1737  loadData(is, myMetaweight);
1738  loadData(is, myDoprender);
1739  loadData(is, myPrtype);
1740  loadData(is, myPrsize);
1741  loadData(is, myPrblur);
1742  loadData(is, myDovolvis);
1743  loadData(is, myVolvis);
1744  loadData(is, myVolvisiso);
1745  loadData(is, myVolvisdensity);
1746  loadData(is, myDotaper);
1747  loadData(is, myTaper);
1748  loadData(is, myDovolume);
1749  loadData(is, myVolborder);
1750  loadData(is, myVolborderval);
1751  loadData(is, myDovoltol);
1752  loadData(is, myVoltol);
1753  loadData(is, myDovoltypeinfo);
1754  loadData(is, myVoltypeinfo);
1755  loadData(is, myDovistile);
1756  loadData(is, myVistile);
1757  loadData(is, myDovdbclass);
1758  loadData(is, myVdbclass);
1759  loadData(is, myDovdbcreator);
1760  loadData(is, myVdbcreator);
1761  loadData(is, myDovdbtransform);
1762  loadData(is, myVdbtransform);
1763  loadData(is, myDovdbvectype);
1764  loadData(is, myVdbvectype);
1765  loadData(is, myDovdbhalf);
1766  loadData(is, myVdbhalf);
1767  loadData(is, myTemplategrp);
1768  loadData(is, myPshapeu);
1769  loadData(is, myPshapev);
1770 
1771  return true;
1772  }
1773 
1774  const UT_StringHolder & getGroup() const { return myGroup; }
1775  void setGroup(const UT_StringHolder & val) { myGroup = val; }
1777  {
1778  SOP_Node *thissop = cookparms.getNode();
1779  if (!thissop) return getGroup();
1781  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
1782  return result;
1783  }
1784  bool getDoXform() const { return myDoXform; }
1785  void setDoXform(bool val) { myDoXform = val; }
1786  bool opDoXform(const SOP_NodeVerb::CookParms &cookparms) const
1787  {
1788  SOP_Node *thissop = cookparms.getNode();
1789  if (!thissop) return getDoXform();
1790  bool result;
1791  OP_Utils::evalOpParm(result, thissop, "doxform", cookparms.getCookTime(), 0);
1792  return result;
1793  }
1794  DoRot getDoRot() const { return DoRot(myDoRot); }
1795  void setDoRot(DoRot val) { myDoRot = int64(val); }
1796  DoRot opDoRot(const SOP_NodeVerb::CookParms &cookparms) const
1797  {
1798  SOP_Node *thissop = cookparms.getNode();
1799  if (!thissop) return getDoRot();
1800  int64 result;
1801  OP_Utils::evalOpParm(result, thissop, "dorot", cookparms.getCookTime(), 0);
1802  return DoRot(result);
1803  }
1804  Xord getXord() const { return Xord(myXord); }
1805  void setXord(Xord val) { myXord = int64(val); }
1806  Xord opXord(const SOP_NodeVerb::CookParms &cookparms) const
1807  {
1808  SOP_Node *thissop = cookparms.getNode();
1809  if (!thissop) return getXord();
1810  int64 result;
1811  OP_Utils::evalOpParm(result, thissop, "xOrd", cookparms.getCookTime(), 0);
1812  return Xord(result);
1813  }
1814  Rord getRord() const { return Rord(myRord); }
1815  void setRord(Rord val) { myRord = int64(val); }
1816  Rord opRord(const SOP_NodeVerb::CookParms &cookparms) const
1817  {
1818  SOP_Node *thissop = cookparms.getNode();
1819  if (!thissop) return getRord();
1820  int64 result;
1821  OP_Utils::evalOpParm(result, thissop, "rOrd", cookparms.getCookTime(), 0);
1822  return Rord(result);
1823  }
1824  UT_Vector3D getT() const { return myT; }
1825  void setT(UT_Vector3D val) { myT = val; }
1826  UT_Vector3D opT(const SOP_NodeVerb::CookParms &cookparms) const
1827  {
1828  SOP_Node *thissop = cookparms.getNode();
1829  if (!thissop) return getT();
1831  OP_Utils::evalOpParm(result, thissop, "t", cookparms.getCookTime(), 0);
1832  return result;
1833  }
1834  UT_Vector3D getR() const { return myR; }
1835  void setR(UT_Vector3D val) { myR = val; }
1836  UT_Vector3D opR(const SOP_NodeVerb::CookParms &cookparms) const
1837  {
1838  SOP_Node *thissop = cookparms.getNode();
1839  if (!thissop) return getR();
1841  OP_Utils::evalOpParm(result, thissop, "r", cookparms.getCookTime(), 0);
1842  return result;
1843  }
1844  UT_Vector3D getS() const { return myS; }
1845  void setS(UT_Vector3D val) { myS = val; }
1846  UT_Vector3D opS(const SOP_NodeVerb::CookParms &cookparms) const
1847  {
1848  SOP_Node *thissop = cookparms.getNode();
1849  if (!thissop) return getS();
1851  OP_Utils::evalOpParm(result, thissop, "s", cookparms.getCookTime(), 0);
1852  return result;
1853  }
1854  UT_Vector3D getShear() const { return myShear; }
1855  void setShear(UT_Vector3D val) { myShear = val; }
1857  {
1858  SOP_Node *thissop = cookparms.getNode();
1859  if (!thissop) return getShear();
1861  OP_Utils::evalOpParm(result, thissop, "shear", cookparms.getCookTime(), 0);
1862  return result;
1863  }
1864  UT_Vector3D getP() const { return myP; }
1865  void setP(UT_Vector3D val) { myP = val; }
1866  UT_Vector3D opP(const SOP_NodeVerb::CookParms &cookparms) const
1867  {
1868  SOP_Node *thissop = cookparms.getNode();
1869  if (!thissop) return getP();
1871  OP_Utils::evalOpParm(result, thissop, "p", cookparms.getCookTime(), 0);
1872  return result;
1873  }
1874  UT_Vector3D getPr() const { return myPr; }
1875  void setPr(UT_Vector3D val) { myPr = val; }
1876  UT_Vector3D opPr(const SOP_NodeVerb::CookParms &cookparms) const
1877  {
1878  SOP_Node *thissop = cookparms.getNode();
1879  if (!thissop) return getPr();
1881  OP_Utils::evalOpParm(result, thissop, "pr", cookparms.getCookTime(), 0);
1882  return result;
1883  }
1884  const UT_StringHolder & getLookatpath() const { return myLookatpath; }
1885  void setLookatpath(const UT_StringHolder & val) { myLookatpath = val; }
1887  {
1888  SOP_Node *thissop = cookparms.getNode();
1889  if (!thissop) return getLookatpath();
1891  OP_Utils::evalOpParm(result, thissop, "lookatpath", cookparms.getCookTime(), 0);
1892  return result;
1893  }
1894  UT_Vector3D getUpvector() const { return myUpvector; }
1895  void setUpvector(UT_Vector3D val) { myUpvector = val; }
1897  {
1898  SOP_Node *thissop = cookparms.getNode();
1899  if (!thissop) return getUpvector();
1901  OP_Utils::evalOpParm(result, thissop, "upvector", cookparms.getCookTime(), 0);
1902  return result;
1903  }
1904  const UT_StringHolder & getXformattribs() const { return myXformattribs; }
1905  void setXformattribs(const UT_StringHolder & val) { myXformattribs = val; }
1907  {
1908  SOP_Node *thissop = cookparms.getNode();
1909  if (!thissop) return getXformattribs();
1911  OP_Utils::evalOpParm(result, thissop, "xformattribs", cookparms.getCookTime(), 0);
1912  return result;
1913  }
1914  Doclr getDoclr() const { return Doclr(myDoclr); }
1915  void setDoclr(Doclr val) { myDoclr = int64(val); }
1916  Doclr opDoclr(const SOP_NodeVerb::CookParms &cookparms) const
1917  {
1918  SOP_Node *thissop = cookparms.getNode();
1919  if (!thissop) return getDoclr();
1920  int64 result;
1921  OP_Utils::evalOpParm(result, thissop, "doclr", cookparms.getCookTime(), 0);
1922  return Doclr(result);
1923  }
1924  UT_Vector3D getDiff() const { return myDiff; }
1925  void setDiff(UT_Vector3D val) { myDiff = val; }
1927  {
1928  SOP_Node *thissop = cookparms.getNode();
1929  if (!thissop) return getDiff();
1931  OP_Utils::evalOpParm(result, thissop, "diff", cookparms.getCookTime(), 0);
1932  return result;
1933  }
1934  Doalpha getDoalpha() const { return Doalpha(myDoalpha); }
1935  void setDoalpha(Doalpha val) { myDoalpha = int64(val); }
1937  {
1938  SOP_Node *thissop = cookparms.getNode();
1939  if (!thissop) return getDoalpha();
1940  int64 result;
1941  OP_Utils::evalOpParm(result, thissop, "doalpha", cookparms.getCookTime(), 0);
1942  return Doalpha(result);
1943  }
1944  fpreal64 getAlpha() const { return myAlpha; }
1945  void setAlpha(fpreal64 val) { myAlpha = val; }
1946  fpreal64 opAlpha(const SOP_NodeVerb::CookParms &cookparms) const
1947  {
1948  SOP_Node *thissop = cookparms.getNode();
1949  if (!thissop) return getAlpha();
1950  fpreal64 result;
1951  OP_Utils::evalOpParm(result, thissop, "alpha", cookparms.getCookTime(), 0);
1952  return result;
1953  }
1954  Docrease getDocrease() const { return Docrease(myDocrease); }
1955  void setDocrease(Docrease val) { myDocrease = int64(val); }
1957  {
1958  SOP_Node *thissop = cookparms.getNode();
1959  if (!thissop) return getDocrease();
1960  int64 result;
1961  OP_Utils::evalOpParm(result, thissop, "docrease", cookparms.getCookTime(), 0);
1962  return Docrease(result);
1963  }
1964  fpreal64 getCrease() const { return myCrease; }
1965  void setCrease(fpreal64 val) { myCrease = val; }
1967  {
1968  SOP_Node *thissop = cookparms.getNode();
1969  if (!thissop) return getCrease();
1970  fpreal64 result;
1971  OP_Utils::evalOpParm(result, thissop, "crease", cookparms.getCookTime(), 0);
1972  return result;
1973  }
1974  Dotexture getDotexture() const { return Dotexture(myDotexture); }
1975  void setDotexture(Dotexture val) { myDotexture = int64(val); }
1977  {
1978  SOP_Node *thissop = cookparms.getNode();
1979  if (!thissop) return getDotexture();
1980  int64 result;
1981  OP_Utils::evalOpParm(result, thissop, "dotexture", cookparms.getCookTime(), 0);
1982  return Dotexture(result);
1983  }
1984  const UT_StringHolder & getTexture() const { return myTexture; }
1985  void setTexture(const UT_StringHolder & val) { myTexture = val; }
1987  {
1988  SOP_Node *thissop = cookparms.getNode();
1989  if (!thissop) return getTexture();
1991  OP_Utils::evalOpParm(result, thissop, "texture", cookparms.getCookTime(), 0);
1992  return result;
1993  }
1994  Closeu getCloseu() const { return Closeu(myCloseu); }
1995  void setCloseu(Closeu val) { myCloseu = int64(val); }
1996  Closeu opCloseu(const SOP_NodeVerb::CookParms &cookparms) const
1997  {
1998  SOP_Node *thissop = cookparms.getNode();
1999  if (!thissop) return getCloseu();
2000  int64 result;
2001  OP_Utils::evalOpParm(result, thissop, "closeu", cookparms.getCookTime(), 0);
2002  return Closeu(result);
2003  }
2004  Closev getClosev() const { return Closev(myClosev); }
2005  void setClosev(Closev val) { myClosev = int64(val); }
2006  Closev opClosev(const SOP_NodeVerb::CookParms &cookparms) const
2007  {
2008  SOP_Node *thissop = cookparms.getNode();
2009  if (!thissop) return getClosev();
2010  int64 result;
2011  OP_Utils::evalOpParm(result, thissop, "closev", cookparms.getCookTime(), 0);
2012  return Closev(result);
2013  }
2014  Clampu getClampu() const { return Clampu(myClampu); }
2015  void setClampu(Clampu val) { myClampu = int64(val); }
2016  Clampu opClampu(const SOP_NodeVerb::CookParms &cookparms) const
2017  {
2018  SOP_Node *thissop = cookparms.getNode();
2019  if (!thissop) return getClampu();
2020  int64 result;
2021  OP_Utils::evalOpParm(result, thissop, "clampu", cookparms.getCookTime(), 0);
2022  return Clampu(result);
2023  }
2024  Clampv getClampv() const { return Clampv(myClampv); }
2025  void setClampv(Clampv val) { myClampv = int64(val); }
2026  Clampv opClampv(const SOP_NodeVerb::CookParms &cookparms) const
2027  {
2028  SOP_Node *thissop = cookparms.getNode();
2029  if (!thissop) return getClampv();
2030  int64 result;
2031  OP_Utils::evalOpParm(result, thissop, "clampv", cookparms.getCookTime(), 0);
2032  return Clampv(result);
2033  }
2034  Vtxsort getVtxsort() const { return Vtxsort(myVtxsort); }
2035  void setVtxsort(Vtxsort val) { myVtxsort = int64(val); }
2037  {
2038  SOP_Node *thissop = cookparms.getNode();
2039  if (!thissop) return getVtxsort();
2040  int64 result;
2041  OP_Utils::evalOpParm(result, thissop, "vtxsort", cookparms.getCookTime(), 0);
2042  return Vtxsort(result);
2043  }
2044  int64 getVtxuoff() const { return myVtxuoff; }
2045  void setVtxuoff(int64 val) { myVtxuoff = val; }
2046  int64 opVtxuoff(const SOP_NodeVerb::CookParms &cookparms) const
2047  {
2048  SOP_Node *thissop = cookparms.getNode();
2049  if (!thissop) return getVtxuoff();
2050  int64 result;
2051  OP_Utils::evalOpParm(result, thissop, "vtxuoff", cookparms.getCookTime(), 0);
2052  return result;
2053  }
2054  int64 getVtxvoff() const { return myVtxvoff; }
2055  void setVtxvoff(int64 val) { myVtxvoff = val; }
2056  int64 opVtxvoff(const SOP_NodeVerb::CookParms &cookparms) const
2057  {
2058  SOP_Node *thissop = cookparms.getNode();
2059  if (!thissop) return getVtxvoff();
2060  int64 result;
2061  OP_Utils::evalOpParm(result, thissop, "vtxvoff", cookparms.getCookTime(), 0);
2062  return result;
2063  }
2064  bool getDoweight() const { return myDoweight; }
2065  void setDoweight(bool val) { myDoweight = val; }
2066  bool opDoweight(const SOP_NodeVerb::CookParms &cookparms) const
2067  {
2068  SOP_Node *thissop = cookparms.getNode();
2069  if (!thissop) return getDoweight();
2070  bool result;
2071  OP_Utils::evalOpParm(result, thissop, "doweight", cookparms.getCookTime(), 0);
2072  return result;
2073  }
2074  fpreal64 getMetaweight() const { return myMetaweight; }
2075  void setMetaweight(fpreal64 val) { myMetaweight = val; }
2077  {
2078  SOP_Node *thissop = cookparms.getNode();
2079  if (!thissop) return getMetaweight();
2080  fpreal64 result;
2081  OP_Utils::evalOpParm(result, thissop, "metaweight", cookparms.getCookTime(), 0);
2082  return result;
2083  }
2084  bool getDoprender() const { return myDoprender; }
2085  void setDoprender(bool val) { myDoprender = val; }
2086  bool opDoprender(const SOP_NodeVerb::CookParms &cookparms) const
2087  {
2088  SOP_Node *thissop = cookparms.getNode();
2089  if (!thissop) return getDoprender();
2090  bool result;
2091  OP_Utils::evalOpParm(result, thissop, "doprender", cookparms.getCookTime(), 0);
2092  return result;
2093  }
2094  Prtype getPrtype() const { return Prtype(myPrtype); }
2095  void setPrtype(Prtype val) { myPrtype = int64(val); }
2096  Prtype opPrtype(const SOP_NodeVerb::CookParms &cookparms) const
2097  {
2098  SOP_Node *thissop = cookparms.getNode();
2099  if (!thissop) return getPrtype();
2100  int64 result;
2101  OP_Utils::evalOpParm(result, thissop, "prtype", cookparms.getCookTime(), 0);
2102  return Prtype(result);
2103  }
2104  fpreal64 getPrsize() const { return myPrsize; }
2105  void setPrsize(fpreal64 val) { myPrsize = val; }
2107  {
2108  SOP_Node *thissop = cookparms.getNode();
2109  if (!thissop) return getPrsize();
2110  fpreal64 result;
2111  OP_Utils::evalOpParm(result, thissop, "prsize", cookparms.getCookTime(), 0);
2112  return result;
2113  }
2114  fpreal64 getPrblur() const { return myPrblur; }
2115  void setPrblur(fpreal64 val) { myPrblur = val; }
2117  {
2118  SOP_Node *thissop = cookparms.getNode();
2119  if (!thissop) return getPrblur();
2120  fpreal64 result;
2121  OP_Utils::evalOpParm(result, thissop, "prblur", cookparms.getCookTime(), 0);
2122  return result;
2123  }
2124  bool getDovolvis() const { return myDovolvis; }
2125  void setDovolvis(bool val) { myDovolvis = val; }
2126  bool opDovolvis(const SOP_NodeVerb::CookParms &cookparms) const
2127  {
2128  SOP_Node *thissop = cookparms.getNode();
2129  if (!thissop) return getDovolvis();
2130  bool result;
2131  OP_Utils::evalOpParm(result, thissop, "dovolvis", cookparms.getCookTime(), 0);
2132  return result;
2133  }
2134  Volvis getVolvis() const { return Volvis(myVolvis); }
2135  void setVolvis(Volvis val) { myVolvis = int64(val); }
2136  Volvis opVolvis(const SOP_NodeVerb::CookParms &cookparms) const
2137  {
2138  SOP_Node *thissop = cookparms.getNode();
2139  if (!thissop) return getVolvis();
2140  int64 result;
2141  OP_Utils::evalOpParm(result, thissop, "volvis", cookparms.getCookTime(), 0);
2142  return Volvis(result);
2143  }
2144  fpreal64 getVolvisiso() const { return myVolvisiso; }
2145  void setVolvisiso(fpreal64 val) { myVolvisiso = val; }
2147  {
2148  SOP_Node *thissop = cookparms.getNode();
2149  if (!thissop) return getVolvisiso();
2150  fpreal64 result;
2151  OP_Utils::evalOpParm(result, thissop, "volvisiso", cookparms.getCookTime(), 0);
2152  return result;
2153  }
2154  fpreal64 getVolvisdensity() const { return myVolvisdensity; }
2155  void setVolvisdensity(fpreal64 val) { myVolvisdensity = val; }
2157  {
2158  SOP_Node *thissop = cookparms.getNode();
2159  if (!thissop) return getVolvisdensity();
2160  fpreal64 result;
2161  OP_Utils::evalOpParm(result, thissop, "volvisdensity", cookparms.getCookTime(), 0);
2162  return result;
2163  }
2164  bool getDotaper() const { return myDotaper; }
2165  void setDotaper(bool val) { myDotaper = val; }
2166  bool opDotaper(const SOP_NodeVerb::CookParms &cookparms) const
2167  {
2168  SOP_Node *thissop = cookparms.getNode();
2169  if (!thissop) return getDotaper();
2170  bool result;
2171  OP_Utils::evalOpParm(result, thissop, "dotaper", cookparms.getCookTime(), 0);
2172  return result;
2173  }
2174  UT_Vector2D getTaper() const { return myTaper; }
2175  void setTaper(UT_Vector2D val) { myTaper = val; }
2177  {
2178  SOP_Node *thissop = cookparms.getNode();
2179  if (!thissop) return getTaper();
2181  OP_Utils::evalOpParm(result, thissop, "taper", cookparms.getCookTime(), 0);
2182  return result;
2183  }
2184  bool getDovolume() const { return myDovolume; }
2185  void setDovolume(bool val) { myDovolume = val; }
2186  bool opDovolume(const SOP_NodeVerb::CookParms &cookparms) const
2187  {
2188  SOP_Node *thissop = cookparms.getNode();
2189  if (!thissop) return getDovolume();
2190  bool result;
2191  OP_Utils::evalOpParm(result, thissop, "dovolume", cookparms.getCookTime(), 0);
2192  return result;
2193  }
2194  Volborder getVolborder() const { return Volborder(myVolborder); }
2195  void setVolborder(Volborder val) { myVolborder = int64(val); }
2197  {
2198  SOP_Node *thissop = cookparms.getNode();
2199  if (!thissop) return getVolborder();
2200  int64 result;
2201  OP_Utils::evalOpParm(result, thissop, "volborder", cookparms.getCookTime(), 0);
2202  return Volborder(result);
2203  }
2204  fpreal64 getVolborderval() const { return myVolborderval; }
2205  void setVolborderval(fpreal64 val) { myVolborderval = val; }
2207  {
2208  SOP_Node *thissop = cookparms.getNode();
2209  if (!thissop) return getVolborderval();
2210  fpreal64 result;
2211  OP_Utils::evalOpParm(result, thissop, "volborderval", cookparms.getCookTime(), 0);
2212  return result;
2213  }
2214  bool getDovoltol() const { return myDovoltol; }
2215  void setDovoltol(bool val) { myDovoltol = val; }
2216  bool opDovoltol(const SOP_NodeVerb::CookParms &cookparms) const
2217  {
2218  SOP_Node *thissop = cookparms.getNode();
2219  if (!thissop) return getDovoltol();
2220  bool result;
2221  OP_Utils::evalOpParm(result, thissop, "dovoltol", cookparms.getCookTime(), 0);
2222  return result;
2223  }
2224  fpreal64 getVoltol() const { return myVoltol; }
2225  void setVoltol(fpreal64 val) { myVoltol = val; }
2227  {
2228  SOP_Node *thissop = cookparms.getNode();
2229  if (!thissop) return getVoltol();
2230  fpreal64 result;
2231  OP_Utils::evalOpParm(result, thissop, "voltol", cookparms.getCookTime(), 0);
2232  return result;
2233  }
2234  bool getDovoltypeinfo() const { return myDovoltypeinfo; }
2235  void setDovoltypeinfo(bool val) { myDovoltypeinfo = val; }
2236  bool opDovoltypeinfo(const SOP_NodeVerb::CookParms &cookparms) const
2237  {
2238  SOP_Node *thissop = cookparms.getNode();
2239  if (!thissop) return getDovoltypeinfo();
2240  bool result;
2241  OP_Utils::evalOpParm(result, thissop, "dovoltypeinfo", cookparms.getCookTime(), 0);
2242  return result;
2243  }
2244  Voltypeinfo getVoltypeinfo() const { return Voltypeinfo(myVoltypeinfo); }
2245  void setVoltypeinfo(Voltypeinfo val) { myVoltypeinfo = int64(val); }
2247  {
2248  SOP_Node *thissop = cookparms.getNode();
2249  if (!thissop) return getVoltypeinfo();
2250  int64 result;
2251  OP_Utils::evalOpParm(result, thissop, "voltypeinfo", cookparms.getCookTime(), 0);
2252  return Voltypeinfo(result);
2253  }
2254  bool getDovistile() const { return myDovistile; }
2255  void setDovistile(bool val) { myDovistile = val; }
2256  bool opDovistile(const SOP_NodeVerb::CookParms &cookparms) const
2257  {
2258  SOP_Node *thissop = cookparms.getNode();
2259  if (!thissop) return getDovistile();
2260  bool result;
2261  OP_Utils::evalOpParm(result, thissop, "dovistile", cookparms.getCookTime(), 0);
2262  return result;
2263  }
2264  fpreal64 getVistile() const { return myVistile; }
2265  void setVistile(fpreal64 val) { myVistile = val; }
2267  {
2268  SOP_Node *thissop = cookparms.getNode();
2269  if (!thissop) return getVistile();
2270  fpreal64 result;
2271  OP_Utils::evalOpParm(result, thissop, "vistile", cookparms.getCookTime(), 0);
2272  return result;
2273  }
2274  bool getDovdbclass() const { return myDovdbclass; }
2275  void setDovdbclass(bool val) { myDovdbclass = val; }
2276  bool opDovdbclass(const SOP_NodeVerb::CookParms &cookparms) const
2277  {
2278  SOP_Node *thissop = cookparms.getNode();
2279  if (!thissop) return getDovdbclass();
2280  bool result;
2281  OP_Utils::evalOpParm(result, thissop, "dovdbclass", cookparms.getCookTime(), 0);
2282  return result;
2283  }
2284  int64 getVdbclass() const { return myVdbclass; }
2285  void setVdbclass(int64 val) { myVdbclass = val; }
2286  int64 opVdbclass(const SOP_NodeVerb::CookParms &cookparms) const
2287  {
2288  SOP_Node *thissop = cookparms.getNode();
2289  if (!thissop) return getVdbclass();
2290  int64 result;
2291  OP_Utils::evalOpParm(result, thissop, "vdbclass", cookparms.getCookTime(), 0);
2292  return result;
2293  }
2294  bool getDovdbcreator() const { return myDovdbcreator; }
2295  void setDovdbcreator(bool val) { myDovdbcreator = val; }
2296  bool opDovdbcreator(const SOP_NodeVerb::CookParms &cookparms) const
2297  {
2298  SOP_Node *thissop = cookparms.getNode();
2299  if (!thissop) return getDovdbcreator();
2300  bool result;
2301  OP_Utils::evalOpParm(result, thissop, "dovdbcreator", cookparms.getCookTime(), 0);
2302  return result;
2303  }
2304  const UT_StringHolder & getVdbcreator() const { return myVdbcreator; }
2305  void setVdbcreator(const UT_StringHolder & val) { myVdbcreator = val; }
2307  {
2308  SOP_Node *thissop = cookparms.getNode();
2309  if (!thissop) return getVdbcreator();
2311  OP_Utils::evalOpParm(result, thissop, "vdbcreator", cookparms.getCookTime(), 0);
2312  return result;
2313  }
2314  bool getDovdbtransform() const { return myDovdbtransform; }
2315  void setDovdbtransform(bool val) { myDovdbtransform = val; }
2316  bool opDovdbtransform(const SOP_NodeVerb::CookParms &cookparms) const
2317  {
2318  SOP_Node *thissop = cookparms.getNode();
2319  if (!thissop) return getDovdbtransform();
2320  bool result;
2321  OP_Utils::evalOpParm(result, thissop, "dovdbtransform", cookparms.getCookTime(), 0);
2322  return result;
2323  }
2324  bool getVdbtransform() const { return myVdbtransform; }
2325  void setVdbtransform(bool val) { myVdbtransform = val; }
2326  bool opVdbtransform(const SOP_NodeVerb::CookParms &cookparms) const
2327  {
2328  SOP_Node *thissop = cookparms.getNode();
2329  if (!thissop) return getVdbtransform();
2330  bool result;
2331  OP_Utils::evalOpParm(result, thissop, "vdbtransform", cookparms.getCookTime(), 0);
2332  return result;
2333  }
2334  bool getDovdbvectype() const { return myDovdbvectype; }
2335  void setDovdbvectype(bool val) { myDovdbvectype = val; }
2336  bool opDovdbvectype(const SOP_NodeVerb::CookParms &cookparms) const
2337  {
2338  SOP_Node *thissop = cookparms.getNode();
2339  if (!thissop) return getDovdbvectype();
2340  bool result;
2341  OP_Utils::evalOpParm(result, thissop, "dovdbvectype", cookparms.getCookTime(), 0);
2342  return result;
2343  }
2344  int64 getVdbvectype() const { return myVdbvectype; }
2345  void setVdbvectype(int64 val) { myVdbvectype = val; }
2347  {
2348  SOP_Node *thissop = cookparms.getNode();
2349  if (!thissop) return getVdbvectype();
2350  int64 result;
2351  OP_Utils::evalOpParm(result, thissop, "vdbvectype", cookparms.getCookTime(), 0);
2352  return result;
2353  }
2354  bool getDovdbhalf() const { return myDovdbhalf; }
2355  void setDovdbhalf(bool val) { myDovdbhalf = val; }
2356  bool opDovdbhalf(const SOP_NodeVerb::CookParms &cookparms) const
2357  {
2358  SOP_Node *thissop = cookparms.getNode();
2359  if (!thissop) return getDovdbhalf();
2360  bool result;
2361  OP_Utils::evalOpParm(result, thissop, "dovdbhalf", cookparms.getCookTime(), 0);
2362  return result;
2363  }
2364  bool getVdbhalf() const { return myVdbhalf; }
2365  void setVdbhalf(bool val) { myVdbhalf = val; }
2366  bool opVdbhalf(const SOP_NodeVerb::CookParms &cookparms) const
2367  {
2368  SOP_Node *thissop = cookparms.getNode();
2369  if (!thissop) return getVdbhalf();
2370  bool result;
2371  OP_Utils::evalOpParm(result, thissop, "vdbhalf", cookparms.getCookTime(), 0);
2372  return result;
2373  }
2374  const UT_StringHolder & getTemplategrp() const { return myTemplategrp; }
2375  void setTemplategrp(const UT_StringHolder & val) { myTemplategrp = val; }
2377  {
2378  SOP_Node *thissop = cookparms.getNode();
2379  if (!thissop) return getTemplategrp();
2381  OP_Utils::evalOpParm(result, thissop, "templateGrp", cookparms.getCookTime(), 0);
2382  return result;
2383  }
2384  bool getPshapeu() const { return myPshapeu; }
2385  void setPshapeu(bool val) { myPshapeu = val; }
2386  bool opPshapeu(const SOP_NodeVerb::CookParms &cookparms) const
2387  {
2388  SOP_Node *thissop = cookparms.getNode();
2389  if (!thissop) return getPshapeu();
2390  bool result;
2391  OP_Utils::evalOpParm(result, thissop, "pshapeu", cookparms.getCookTime(), 0);
2392  return result;
2393  }
2394  bool getPshapev() const { return myPshapev; }
2395  void setPshapev(bool val) { myPshapev = val; }
2396  bool opPshapev(const SOP_NodeVerb::CookParms &cookparms) const
2397  {
2398  SOP_Node *thissop = cookparms.getNode();
2399  if (!thissop) return getPshapev();
2400  bool result;
2401  OP_Utils::evalOpParm(result, thissop, "pshapev", cookparms.getCookTime(), 0);
2402  return result;
2403  }
2404 
2405 private:
2406  UT_StringHolder myGroup;
2407  bool myDoXform;
2408  int64 myDoRot;
2409  int64 myXord;
2410  int64 myRord;
2411  UT_Vector3D myT;
2412  UT_Vector3D myR;
2413  UT_Vector3D myS;
2414  UT_Vector3D myShear;
2415  UT_Vector3D myP;
2416  UT_Vector3D myPr;
2417  UT_StringHolder myLookatpath;
2418  UT_Vector3D myUpvector;
2419  UT_StringHolder myXformattribs;
2420  int64 myDoclr;
2421  UT_Vector3D myDiff;
2422  int64 myDoalpha;
2423  fpreal64 myAlpha;
2424  int64 myDocrease;
2425  fpreal64 myCrease;
2426  int64 myDotexture;
2427  UT_StringHolder myTexture;
2428  int64 myCloseu;
2429  int64 myClosev;
2430  int64 myClampu;
2431  int64 myClampv;
2432  int64 myVtxsort;
2433  int64 myVtxuoff;
2434  int64 myVtxvoff;
2435  bool myDoweight;
2436  fpreal64 myMetaweight;
2437  bool myDoprender;
2438  int64 myPrtype;
2439  fpreal64 myPrsize;
2440  fpreal64 myPrblur;
2441  bool myDovolvis;
2442  int64 myVolvis;
2443  fpreal64 myVolvisiso;
2444  fpreal64 myVolvisdensity;
2445  bool myDotaper;
2446  UT_Vector2D myTaper;
2447  bool myDovolume;
2448  int64 myVolborder;
2449  fpreal64 myVolborderval;
2450  bool myDovoltol;
2451  fpreal64 myVoltol;
2452  bool myDovoltypeinfo;
2453  int64 myVoltypeinfo;
2454  bool myDovistile;
2455  fpreal64 myVistile;
2456  bool myDovdbclass;
2457  int64 myVdbclass;
2458  bool myDovdbcreator;
2459  UT_StringHolder myVdbcreator;
2460  bool myDovdbtransform;
2461  bool myVdbtransform;
2462  bool myDovdbvectype;
2463  int64 myVdbvectype;
2464  bool myDovdbhalf;
2465  bool myVdbhalf;
2466  UT_StringHolder myTemplategrp;
2467  bool myPshapeu;
2468  bool myPshapev;
2469 
2470 };
void setVolvisdensity(fpreal64 val)
ParmType getNestParmType(TempIndex fieldnum) const override
virtual NodeIdx getInput(NodeIdx idx, OP_InputIdx input, bool markused=false) const =0
type
Definition: core.h:556
Volborder opVolborder(const SOP_NodeVerb::CookParms &cookparms) const
Docrease getDocrease() const
UT_Vector3D getT() const
static void saveData(std::ostream &os, UT_Matrix2D v)
fpreal64 getAlpha() const
bool opDovdbclass(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getVolborderval() const
void setDovolume(bool val)
UT_Vector3D opDiff(const SOP_NodeVerb::CookParms &cookparms) const
void setDovdbcreator(bool val)
static void loadData(UT_IStream &is, UT_Vector3I &v)
bool opVdbhalf(const SOP_NodeVerb::CookParms &cookparms) const
Doclr opDoclr(const SOP_NodeVerb::CookParms &cookparms) const
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
static void loadData(UT_IStream &is, UT_StringHolder &v)
void setVtxvoff(int64 val)
fpreal64 getPrsize() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
static void loadData(UT_IStream &is, UT_Matrix3D &v)
static void saveData(std::ostream &os, int64 v)
void setP(UT_Vector3D val)
Vtxsort getVtxsort() const
exint bread(int32 *buffer, exint asize=1)
void setPrsize(fpreal64 val)
GLboolean * data
Definition: glcorearb.h:131
GT_API const UT_StringHolder time
fpreal64 getVoltol() const
UT_Vector3D getDiff() const
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_Vector3D getP() const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
UT_Vector2T< fpreal64 > UT_Vector2D
GLsizei const GLfloat * value
Definition: glcorearb.h:824
void setDoweight(bool val)
fpreal64 getVolvisiso() const
UT_StringHolder opVdbcreator(const SOP_NodeVerb::CookParms &cookparms) const
int64 opVdbclass(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Matrix2D &v)
void setXformattribs(const UT_StringHolder &val)
Volvis getVolvis() const
fpreal64 getVolvisdensity() const
const OP_Context & context() const
Definition: OP_NodeParms.h:97
Closeu getCloseu() const
int64 getVdbvectype() const
Closeu opCloseu(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector3.h:667
int64 exint
Definition: SYS_Types.h:125
static void saveData(std::ostream &os, bool v)
SYS_FORCE_INLINE const char * buffer() const
void setDovoltol(bool val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
fpreal64 opCrease(const SOP_NodeVerb::CookParms &cookparms) const
GLdouble s
Definition: glad.h:3009
bool operator!=(const SOP_PrimitiveParms &src) const
UT_StringHolder opXformattribs(const SOP_NodeVerb::CookParms &cookparms) const
void setDovoltypeinfo(bool val)
An output stream object that owns its own string buffer storage.
UT_Vector2D opTaper(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
void setClampu(Clampu val)
static void loadData(UT_IStream &is, UT_Vector4D &v)
static void loadData(UT_IStream &is, bool &v)
void setVdbvectype(int64 val)
**But if you need a result
Definition: thread.h:622
void setVtxuoff(int64 val)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
exint nodeIdx() const
Definition: OP_NodeParms.h:95
int64 opVtxvoff(const SOP_NodeVerb::CookParms &cookparms) const
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
void save(std::ostream &os) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
bool operator==(const SOP_PrimitiveParms &src) const
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
Closev opClosev(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3D opP(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3D getS() const
fpreal64 opVoltol(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
UT_StringHolder opLookatpath(const SOP_NodeVerb::CookParms &cookparms) const
bool opDovdbtransform(const SOP_NodeVerb::CookParms &cookparms) const
void setPr(UT_Vector3D val)
void setDovdbvectype(bool val)
bool opDovoltol(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3D getShear() const
Prtype opPrtype(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getVistile() const
bool opDoweight(const SOP_NodeVerb::CookParms &cookparms) const
void setVdbcreator(const UT_StringHolder &val)
bool opDovistile(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
static void saveData(std::ostream &os, PRM_DataItemHandle s)
bool opPshapeu(const SOP_NodeVerb::CookParms &cookparms) const
void setS(UT_Vector3D val)
const UT_StringHolder & getTexture() const
bool getDovdbcreator() const
double fpreal64
Definition: SYS_Types.h:201
void setGroup(const UT_StringHolder &val)
void setCrease(fpreal64 val)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: APEX_Include.h:55
void setDoRot(DoRot val)
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector2.h:423
Voltypeinfo getVoltypeinfo() const
void setTaper(UT_Vector2D val)
static void loadData(UT_IStream &is, UT_Vector2I &v)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
void setAlpha(fpreal64 val)
bool getDovdbtransform() const
Clampu getClampu() const
void setDovdbclass(bool val)
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
static void saveData(std::ostream &os, UT_Matrix3D v)
bool opDoprender(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, fpreal64 v)
static void loadData(UT_IStream &is, UT_Matrix4D &v)
SYS_FORCE_INLINE UT_StringHolder getToken(DoRot enum_value)
void setT(UT_Vector3D val)
void setVolborderval(fpreal64 val)
void setMetaweight(fpreal64 val)
bool opDovoltypeinfo(const SOP_NodeVerb::CookParms &cookparms) const
Prtype getPrtype() const
void setDoalpha(Doalpha val)
UT_Vector3D opUpvector(const SOP_NodeVerb::CookParms &cookparms) const
exint length() const
static void saveData(std::ostream &os, UT_StringHolder s)
static void loadData(UT_IStream &is, UT_Vector3D &v)
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:36
Volvis opVolvis(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector4.h:495
UT_Vector3D opT(const SOP_NodeVerb::CookParms &cookparms) const
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
exint getNestNumParms(TempIndex idx) const override
static void loadData(UT_IStream &is, fpreal64 &v)
void setLookatpath(const UT_StringHolder &val)
const UT_StringHolder & getXformattribs() const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
#define SYS_FORCE_INLINE
Definition: SYS_Inline.h:45
Xord opXord(const SOP_NodeVerb::CookParms &cookparms) const
Docrease opDocrease(const SOP_NodeVerb::CookParms &cookparms) const
void setDovistile(bool val)
void setDotexture(Dotexture val)
static void loadData(UT_IStream &is, UT_Vector2D &v)
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
long long int64
Definition: SYS_Types.h:116
UT_Vector3D getPr() const
void setVistile(fpreal64 val)
bool getDovdbvectype() const
static void saveData(std::ostream &os, UT_Vector3D v)
UT_StringHolder opTexture(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
UT_Vector3T< fpreal64 > UT_Vector3D
void loadFromOpSubclass(const LoadParms &loadparms) override
bool opDovdbcreator(const SOP_NodeVerb::CookParms &cookparms) const
bool getVdbtransform() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
Closev getClosev() const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
Rord opRord(const SOP_NodeVerb::CookParms &cookparms) const
void setCloseu(Closeu val)
UT_Vector3D opR(const SOP_NodeVerb::CookParms &cookparms) const
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
void setDovolvis(bool val)
fpreal64 opPrsize(const SOP_NodeVerb::CookParms &cookparms) const
void setVolvisiso(fpreal64 val)
static void saveData(std::ostream &os, UT_Matrix4D v)
static void saveData(std::ostream &os, UT_Vector4D v)
bool isParmColorRamp(exint idx) const override
void setVolvis(Volvis val)
UT_Vector2D getTaper() const
int64 opVdbvectype(const SOP_NodeVerb::CookParms &cookparms) const
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:303
bool opDotaper(const SOP_NodeVerb::CookParms &cookparms) const
void setDiff(UT_Vector3D val)
bool opPshapev(const SOP_NodeVerb::CookParms &cookparms) const
void setDocrease(Docrease val)
GT_API const UT_StringHolder version
bool opVdbtransform(const SOP_NodeVerb::CookParms &cookparms) const
void setR(UT_Vector3D val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
fpreal64 getPrblur() const
Voltypeinfo opVoltypeinfo(const SOP_NodeVerb::CookParms &cookparms) const
const char * getNestParmName(TempIndex fieldnum) const override
void setDovdbtransform(bool val)
void setShear(UT_Vector3D val)
void setVdbtransform(bool val)
fpreal64 opMetaweight(const SOP_NodeVerb::CookParms &cookparms) const
int64 opVtxuoff(const SOP_NodeVerb::CookParms &cookparms) const
bool getDovoltypeinfo() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
void setDovdbhalf(bool val)
fpreal64 fpreal
Definition: SYS_Types.h:278
UT_Vector3D opS(const SOP_NodeVerb::CookParms &cookparms) const
void copyFrom(const OP_NodeParms *src) override
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:99
void setUpvector(UT_Vector3D val)
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
Definition: UT_Ramp.h:96
Doalpha opDoalpha(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getMetaweight() const
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
fpreal64 opPrblur(const SOP_NodeVerb::CookParms &cookparms) const
Clampv opClampv(const SOP_NodeVerb::CookParms &cookparms) const
GLuint GLfloat * val
Definition: glcorearb.h:1608
virtual UT_StringHolder baseGetSignature() const
Definition: OP_NodeParms.h:294
bool load(UT_IStream &is)
#define SOP_API
Definition: SOP_API.h:10
void setVtxsort(Vtxsort val)
UT_Vector3D getR() const
UT_StringHolder opTemplategrp(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
bool opDovolume(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opVolvisiso(const SOP_NodeVerb::CookParms &cookparms) const
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:372
UT_Vector3D getUpvector() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
Clampv getClampv() const
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_Vector2D v)
const UT_StringHolder & getTemplategrp() const
bool opDovolvis(const SOP_NodeVerb::CookParms &cookparms) const
void setVolborder(Volborder val)
GLboolean r
Definition: glcorearb.h:1222
UT_Vector3D opShear(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
void setTexture(const UT_StringHolder &val)
fpreal64 opVistile(const SOP_NodeVerb::CookParms &cookparms) const
bool opDovdbvectype(const SOP_NodeVerb::CookParms &cookparms) const
Dotexture opDotexture(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3D opPr(const SOP_NodeVerb::CookParms &cookparms) const
bool opDovdbhalf(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getLookatpath() const
Dotexture getDotexture() const
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
void setClosev(Closev val)
fpreal64 opVolvisdensity(const SOP_NodeVerb::CookParms &cookparms) const
Doalpha getDoalpha() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
const UT_StringHolder & getGroup() const
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
Volborder getVolborder() const
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
Vtxsort opVtxsort(const SOP_NodeVerb::CookParms &cookparms) const
void setDoprender(bool val)
void setPrblur(fpreal64 val)
void setPrtype(Prtype val)
static void loadData(UT_IStream &is, int64 &v)
fpreal64 getCrease() const
void setClampv(Clampv val)
int64 getVdbclass() const
fpreal64 opAlpha(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector2.h:425
SYS_FORCE_INLINE bool isstring() const
void setVoltol(fpreal64 val)
Clampu opClampu(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
bool opDoXform(const SOP_NodeVerb::CookParms &cookparms) const
void setVoltypeinfo(Voltypeinfo val)
void setTemplategrp(const UT_StringHolder &val)
const UT_StringHolder & getVdbcreator() const
fpreal64 opVolborderval(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector4I &v)
void setDoclr(Doclr val)
DoRot opDoRot(const SOP_NodeVerb::CookParms &cookparms) const
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663
void setVdbclass(int64 val)