HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_PackedEdit.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_PackedEditEnums
24 {
25  enum class Viewportlod
26  {
27  UNCHANGED = 0,
28  FULL,
29  POINTS,
30  BOX,
31  CENTROID,
32  HIDDEN
33  };
34 
36  getToken(Viewportlod enum_value)
37  {
38  using namespace UT::Literal;
39  switch (enum_value) {
40  case Viewportlod::UNCHANGED: return "unchanged"_sh;
41  case Viewportlod::FULL: return "full"_sh;
42  case Viewportlod::POINTS: return "points"_sh;
43  case Viewportlod::BOX: return "box"_sh;
44  case Viewportlod::CENTROID: return "centroid"_sh;
45  case Viewportlod::HIDDEN: return "hidden"_sh;
46  default: UT_ASSERT(false); return ""_sh;
47  }
48  }
49 
50  enum class Visible3d
51  {
52  UNCHANGED = 0,
53  HIDE,
54  SHOW,
55  TOGGLE
56  };
57 
59  getToken(Visible3d enum_value)
60  {
61  using namespace UT::Literal;
62  switch (enum_value) {
63  case Visible3d::UNCHANGED: return "unchanged"_sh;
64  case Visible3d::HIDE: return "hide"_sh;
65  case Visible3d::SHOW: return "show"_sh;
66  case Visible3d::TOGGLE: return "toggle"_sh;
67  default: UT_ASSERT(false); return ""_sh;
68  }
69  }
70 
71  enum class Visible2d
72  {
73  UNCHANGED = 0,
74  HIDE,
75  SHOW,
76  TOGGLE
77  };
78 
80  getToken(Visible2d enum_value)
81  {
82  using namespace UT::Literal;
83  switch (enum_value) {
84  case Visible2d::UNCHANGED: return "unchanged"_sh;
85  case Visible2d::HIDE: return "hide"_sh;
86  case Visible2d::SHOW: return "show"_sh;
87  case Visible2d::TOGGLE: return "toggle"_sh;
88  default: UT_ASSERT(false); return ""_sh;
89  }
90  }
91 
92 }
93 
94 
96 {
97 public:
98  static int version() { return 1; }
99  struct Vopcount
100  {
106 
107 
109  {
110  vgroup = ""_UTsh;
111  vpackedname = ""_UTsh;
112  viewportlod = 0;
113  visible3d = 0;
114  visible2d = 0;
115 
116  }
117 
118  bool operator==(const Vopcount &src) const
119  {
120  if (vgroup != src.vgroup) return false;
121  if (vpackedname != src.vpackedname) return false;
122  if (viewportlod != src.viewportlod) return false;
123  if (visible3d != src.visible3d) return false;
124  if (visible2d != src.visible2d) return false;
125 
126  return true;
127  }
128  bool operator!=(const Vopcount &src) const
129  {
130  return !operator==(src);
131  }
132 
133  };
134 
136  {
138 
139  buf.strcat("[ ");
140  for (int i = 0; i < list.entries(); i++)
141  {
142  if (i)
143  buf.strcat(", ");
144  buf.strcat("( ");
145  buf.append("");
146  { UT_String tmp; tmp = UT_StringWrap(list(i).vgroup).makeQuotedString('"'); buf.strcat(tmp); }
147  buf.append(", ");
148  { UT_String tmp; tmp = UT_StringWrap(list(i).vpackedname).makeQuotedString('"'); buf.strcat(tmp); }
149  buf.append(", ");
150  buf.appendSprintf("%d", (int) list(i).viewportlod);
151  buf.append(", ");
152  buf.appendSprintf("%d", (int) list(i).visible3d);
153  buf.append(", ");
154  buf.appendSprintf("%d", (int) list(i).visible2d);
155 
156  buf.strcat(" )");
157  }
158  buf.strcat(" ]");
159 
161  return result;
162  }
163  struct Mopcount
164  {
168 
169 
171  {
172  mgroup = ""_UTsh;
173  mpackedname = ""_UTsh;
174  shop_materialpath = ""_UTsh;
175 
176  }
177 
178  bool operator==(const Mopcount &src) const
179  {
180  if (mgroup != src.mgroup) return false;
181  if (mpackedname != src.mpackedname) return false;
182  if (shop_materialpath != src.shop_materialpath) return false;
183 
184  return true;
185  }
186  bool operator!=(const Mopcount &src) const
187  {
188  return !operator==(src);
189  }
190 
191  };
192 
194  {
196 
197  buf.strcat("[ ");
198  for (int i = 0; i < list.entries(); i++)
199  {
200  if (i)
201  buf.strcat(", ");
202  buf.strcat("( ");
203  buf.append("");
204  { UT_String tmp; tmp = UT_StringWrap(list(i).mgroup).makeQuotedString('"'); buf.strcat(tmp); }
205  buf.append(", ");
206  { UT_String tmp; tmp = UT_StringWrap(list(i).mpackedname).makeQuotedString('"'); buf.strcat(tmp); }
207  buf.append(", ");
208  { UT_String tmp; tmp = UT_StringWrap(list(i).shop_materialpath).makeQuotedString('"'); buf.strcat(tmp); }
209 
210  buf.strcat(" )");
211  }
212  buf.strcat(" ]");
213 
215  return result;
216  }
217  struct Lopcount
218  {
222 
223 
225  {
226  lgroup = ""_UTsh;
227  lpackedname = ""_UTsh;
228  lightcategories = "*"_UTsh;
229 
230  }
231 
232  bool operator==(const Lopcount &src) const
233  {
234  if (lgroup != src.lgroup) return false;
235  if (lpackedname != src.lpackedname) return false;
236  if (lightcategories != src.lightcategories) return false;
237 
238  return true;
239  }
240  bool operator!=(const Lopcount &src) const
241  {
242  return !operator==(src);
243  }
244 
245  };
246 
248  {
250 
251  buf.strcat("[ ");
252  for (int i = 0; i < list.entries(); i++)
253  {
254  if (i)
255  buf.strcat(", ");
256  buf.strcat("( ");
257  buf.append("");
258  { UT_String tmp; tmp = UT_StringWrap(list(i).lgroup).makeQuotedString('"'); buf.strcat(tmp); }
259  buf.append(", ");
260  { UT_String tmp; tmp = UT_StringWrap(list(i).lpackedname).makeQuotedString('"'); buf.strcat(tmp); }
261  buf.append(", ");
262  { UT_String tmp; tmp = UT_StringWrap(list(i).lightcategories).makeQuotedString('"'); buf.strcat(tmp); }
263 
264  buf.strcat(" )");
265  }
266  buf.strcat(" ]");
267 
269  return result;
270  }
271 
273  {
274  myVopcount.setSize(1);
275  myMopcount.setSize(1);
276  myLopcount.setSize(1);
277 
278  }
279 
280  explicit SOP_PackedEditParms(const SOP_PackedEditParms &) = default;
282  SOP_PackedEditParms(SOP_PackedEditParms &&) noexcept = default;
283  SOP_PackedEditParms &operator=(SOP_PackedEditParms &&) noexcept = default;
284 
285  ~SOP_PackedEditParms() override {}
286 
287  bool operator==(const SOP_PackedEditParms &src) const
288  {
289  if (myVopcount != src.myVopcount) return false;
290  if (myMopcount != src.myMopcount) return false;
291  if (myLopcount != src.myLopcount) return false;
292 
293 
294  if (baseGetSignature() != src.baseGetSignature()) return false;
295 
296  return true;
297  }
298  bool operator!=(const SOP_PackedEditParms &src) const
299  {
300  return !operator==(src);
301  }
305 
306 
307 
308  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
309  {
310  if (true)
311  {
312  int64 length = 0;
313  graph->evalOpParm(length, nodeidx, "vopcount", time, graph->isDirect()?nullptr:depnode);
314  if (length < 0) length = 0;
315  myVopcount.setSize(length);
316  for (exint i = 0; i < length; i++)
317  {
318  int parmidx[1];
319  int offsets[1];
320  parmidx[0] = i+0;
321  offsets[0] = 0;
322  auto && _curentry = myVopcount(i);
323  (void) _curentry;
324  _curentry.vgroup = ""_UTsh;
325  if (true)
326  graph->evalOpParmInst(_curentry.vgroup, nodeidx, "vgroup#", parmidx, offsets, time, graph->isDirect()?nullptr:depnode, 2-1);
327  _curentry.vpackedname = ""_UTsh;
328  if (true)
329  graph->evalOpParmInst(_curentry.vpackedname, nodeidx, "vpackedname#", parmidx, offsets, time, graph->isDirect()?nullptr:depnode, 2-1);
330  _curentry.viewportlod = 0;
331  if (true)
332  graph->evalOpParmInst(_curentry.viewportlod, nodeidx, "viewportlod#", parmidx, offsets, time, graph->isDirect()?nullptr:depnode, 2-1);
333  _curentry.visible3d = 0;
334  if (true)
335  graph->evalOpParmInst(_curentry.visible3d, nodeidx, "visible3d#", parmidx, offsets, time, graph->isDirect()?nullptr:depnode, 2-1);
336  _curentry.visible2d = 0;
337  if (true)
338  graph->evalOpParmInst(_curentry.visible2d, nodeidx, "visible2d#", parmidx, offsets, time, graph->isDirect()?nullptr:depnode, 2-1);
339 
340  }
341  }
342  else
343  myVopcount.clear();
344  if (true)
345  {
346  int64 length = 0;
347  graph->evalOpParm(length, nodeidx, "mopcount", time, graph->isDirect()?nullptr:depnode);
348  if (length < 0) length = 0;
349  myMopcount.setSize(length);
350  for (exint i = 0; i < length; i++)
351  {
352  int parmidx[1];
353  int offsets[1];
354  parmidx[0] = i+0;
355  offsets[0] = 0;
356  auto && _curentry = myMopcount(i);
357  (void) _curentry;
358  _curentry.mgroup = ""_UTsh;
359  if (true)
360  graph->evalOpParmInst(_curentry.mgroup, nodeidx, "mgroup#", parmidx, offsets, time, graph->isDirect()?nullptr:depnode, 2-1);
361  _curentry.mpackedname = ""_UTsh;
362  if (true)
363  graph->evalOpParmInst(_curentry.mpackedname, nodeidx, "mpackedname#", parmidx, offsets, time, graph->isDirect()?nullptr:depnode, 2-1);
364  _curentry.shop_materialpath = ""_UTsh;
365  if (true)
366  graph->evalOpParmInst(_curentry.shop_materialpath, nodeidx, "shop_materialpath#", parmidx, offsets, time, graph->isDirect()?nullptr:depnode, 2-1);
367 
368  }
369  }
370  else
371  myMopcount.clear();
372  if (true)
373  {
374  int64 length = 0;
375  graph->evalOpParm(length, nodeidx, "lopcount", time, graph->isDirect()?nullptr:depnode);
376  if (length < 0) length = 0;
377  myLopcount.setSize(length);
378  for (exint i = 0; i < length; i++)
379  {
380  int parmidx[1];
381  int offsets[1];
382  parmidx[0] = i+0;
383  offsets[0] = 0;
384  auto && _curentry = myLopcount(i);
385  (void) _curentry;
386  _curentry.lgroup = ""_UTsh;
387  if (true)
388  graph->evalOpParmInst(_curentry.lgroup, nodeidx, "lgroup#", parmidx, offsets, time, graph->isDirect()?nullptr:depnode, 2-1);
389  _curentry.lpackedname = ""_UTsh;
390  if (true)
391  graph->evalOpParmInst(_curentry.lpackedname, nodeidx, "lpackedname#", parmidx, offsets, time, graph->isDirect()?nullptr:depnode, 2-1);
392  _curentry.lightcategories = "*"_UTsh;
393  if (true)
394  graph->evalOpParmInst(_curentry.lightcategories, nodeidx, "lightcategories#", parmidx, offsets, time, graph->isDirect()?nullptr:depnode, 2-1);
395 
396  }
397  }
398  else
399  myLopcount.clear();
400 
401  }
402 
403 
404  void loadFromOpSubclass(const LoadParms &loadparms) override
405  {
406  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
407  }
408 
409 
410  void copyFrom(const OP_NodeParms *src) override
411  {
412  *this = *((const SOP_PackedEditParms *)src);
413  }
414 
415  template <typename T>
416  void
417  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
418  {
419  if (idx.size() < 1)
420  return;
421  UT_ASSERT(idx.size() == instance.size()+1);
422  if (idx.size() != instance.size()+1)
423  return;
424  switch (idx[0])
425  {
426  case 0:
427  if (idx.size() == 1)
428  coerceValue(value, myVopcount.entries());
429  else if (instance[0] < myVopcount.entries())
430  {
431  auto && _data = myVopcount(instance[0]);
432  switch (idx[1])
433  {
434  case 0:
435  coerceValue(value, _data.vgroup);
436  break;
437  case 1:
438  coerceValue(value, _data.vpackedname);
439  break;
440  case 2:
441  coerceValue(value, _data.viewportlod);
442  break;
443  case 3:
444  coerceValue(value, _data.visible3d);
445  break;
446  case 4:
447  coerceValue(value, _data.visible2d);
448  break;
449 
450  }
451  }
452  break;
453  case 1:
454  if (idx.size() == 1)
455  coerceValue(value, myMopcount.entries());
456  else if (instance[0] < myMopcount.entries())
457  {
458  auto && _data = myMopcount(instance[0]);
459  switch (idx[1])
460  {
461  case 0:
462  coerceValue(value, _data.mgroup);
463  break;
464  case 1:
465  coerceValue(value, _data.mpackedname);
466  break;
467  case 2:
468  coerceValue(value, _data.shop_materialpath);
469  break;
470 
471  }
472  }
473  break;
474  case 2:
475  if (idx.size() == 1)
476  coerceValue(value, myLopcount.entries());
477  else if (instance[0] < myLopcount.entries())
478  {
479  auto && _data = myLopcount(instance[0]);
480  switch (idx[1])
481  {
482  case 0:
483  coerceValue(value, _data.lgroup);
484  break;
485  case 1:
486  coerceValue(value, _data.lpackedname);
487  break;
488  case 2:
489  coerceValue(value, _data.lightcategories);
490  break;
491 
492  }
493  }
494  break;
495 
496  }
497  }
498 
499  bool isParmColorRamp(exint idx) const override
500  {
501  switch (idx)
502  {
503 
504  }
505  return false;
506  }
507 
508  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
509  { doGetParmValue(idx, instance, value); }
510  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
511  { doGetParmValue(idx, instance, value); }
512  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
513  { doGetParmValue(idx, instance, value); }
514  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
515  { doGetParmValue(idx, instance, value); }
516  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
517  { doGetParmValue(idx, instance, value); }
518  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
519  { doGetParmValue(idx, instance, value); }
520  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
521  { doGetParmValue(idx, instance, value); }
522  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
523  { doGetParmValue(idx, instance, value); }
524  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
525  { doGetParmValue(idx, instance, value); }
526  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
527  { doGetParmValue(idx, instance, value); }
528  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
529  { doGetParmValue(idx, instance, value); }
530 
531  template <typename T>
532  void
533  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
534  {
535  if (idx.size() < 1)
536  return;
537  UT_ASSERT(idx.size() == instance.size()+1);
538  if (idx.size() != instance.size()+1)
539  return;
540  switch (idx[0])
541  {
542  case 0:
543  if (idx.size() == 1)
544  {
545  exint newsize;
546  coerceValue(newsize, value);
547  if (newsize < 0) newsize = 0;
548  myVopcount.setSize(newsize);
549  }
550  else
551  {
552  if (instance[0] < 0)
553  return;
554  myVopcount.setSizeIfNeeded(instance[0]+1);
555  auto && _data = myVopcount(instance[0]);
556  switch (idx[1])
557  {
558  case 0:
559  coerceValue(_data.vgroup, value);
560  break;
561  case 1:
562  coerceValue(_data.vpackedname, value);
563  break;
564  case 2:
565  coerceValue(_data.viewportlod, value);
566  break;
567  case 3:
568  coerceValue(_data.visible3d, value);
569  break;
570  case 4:
571  coerceValue(_data.visible2d, value);
572  break;
573 
574  }
575  }
576  break;
577  case 1:
578  if (idx.size() == 1)
579  {
580  exint newsize;
581  coerceValue(newsize, value);
582  if (newsize < 0) newsize = 0;
583  myMopcount.setSize(newsize);
584  }
585  else
586  {
587  if (instance[0] < 0)
588  return;
589  myMopcount.setSizeIfNeeded(instance[0]+1);
590  auto && _data = myMopcount(instance[0]);
591  switch (idx[1])
592  {
593  case 0:
594  coerceValue(_data.mgroup, value);
595  break;
596  case 1:
597  coerceValue(_data.mpackedname, value);
598  break;
599  case 2:
600  coerceValue(_data.shop_materialpath, value);
601  break;
602 
603  }
604  }
605  break;
606  case 2:
607  if (idx.size() == 1)
608  {
609  exint newsize;
610  coerceValue(newsize, value);
611  if (newsize < 0) newsize = 0;
612  myLopcount.setSize(newsize);
613  }
614  else
615  {
616  if (instance[0] < 0)
617  return;
618  myLopcount.setSizeIfNeeded(instance[0]+1);
619  auto && _data = myLopcount(instance[0]);
620  switch (idx[1])
621  {
622  case 0:
623  coerceValue(_data.lgroup, value);
624  break;
625  case 1:
626  coerceValue(_data.lpackedname, value);
627  break;
628  case 2:
629  coerceValue(_data.lightcategories, value);
630  break;
631 
632  }
633  }
634  break;
635 
636  }
637  }
638 
639  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
640  { doSetParmValue(idx, instance, value); }
641  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
642  { doSetParmValue(idx, instance, value); }
643  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
644  { doSetParmValue(idx, instance, value); }
645  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
646  { doSetParmValue(idx, instance, value); }
647  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
648  { doSetParmValue(idx, instance, value); }
649  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
650  { doSetParmValue(idx, instance, value); }
651  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
652  { doSetParmValue(idx, instance, value); }
653  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
654  { doSetParmValue(idx, instance, value); }
655  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
656  { doSetParmValue(idx, instance, value); }
657  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
658  { doSetParmValue(idx, instance, value); }
659  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
660  { doSetParmValue(idx, instance, value); }
661 
662  exint getNestNumParms(TempIndex idx) const override
663  {
664  if (idx.size() == 0)
665  return 3;
666  switch (idx[0])
667  {
668  case 0:
669  return 5;
670  case 1:
671  return 3;
672  case 2:
673  return 3;
674 
675  }
676  // Invalid
677  return 0;
678  }
679 
680  const char *getNestParmName(TempIndex fieldnum) const override
681  {
682  if (fieldnum.size() < 1)
683  return 0;
684  switch (fieldnum[0])
685  {
686  case 0:
687  if (fieldnum.size() == 1)
688  return "vopcount";
689  switch (fieldnum[1])
690  {
691  case 0:
692  return "vgroup#";
693  case 1:
694  return "vpackedname#";
695  case 2:
696  return "viewportlod#";
697  case 3:
698  return "visible3d#";
699  case 4:
700  return "visible2d#";
701 
702  }
703  return 0;
704  case 1:
705  if (fieldnum.size() == 1)
706  return "mopcount";
707  switch (fieldnum[1])
708  {
709  case 0:
710  return "mgroup#";
711  case 1:
712  return "mpackedname#";
713  case 2:
714  return "shop_materialpath#";
715 
716  }
717  return 0;
718  case 2:
719  if (fieldnum.size() == 1)
720  return "lopcount";
721  switch (fieldnum[1])
722  {
723  case 0:
724  return "lgroup#";
725  case 1:
726  return "lpackedname#";
727  case 2:
728  return "lightcategories#";
729 
730  }
731  return 0;
732 
733  }
734  return 0;
735  }
736 
737  ParmType getNestParmType(TempIndex fieldnum) const override
738  {
739  if (fieldnum.size() < 1)
740  return PARM_UNSUPPORTED;
741  switch (fieldnum[0])
742  {
743  case 0:
744  if (fieldnum.size() == 1)
745  return PARM_MULTIPARM;
746  switch (fieldnum[1])
747  {
748  case 0:
749  return PARM_STRING;
750  case 1:
751  return PARM_STRING;
752  case 2:
753  return PARM_INTEGER;
754  case 3:
755  return PARM_INTEGER;
756  case 4:
757  return PARM_INTEGER;
758 
759  }
760  return PARM_UNSUPPORTED;
761  case 1:
762  if (fieldnum.size() == 1)
763  return PARM_MULTIPARM;
764  switch (fieldnum[1])
765  {
766  case 0:
767  return PARM_STRING;
768  case 1:
769  return PARM_STRING;
770  case 2:
771  return PARM_STRING;
772 
773  }
774  return PARM_UNSUPPORTED;
775  case 2:
776  if (fieldnum.size() == 1)
777  return PARM_MULTIPARM;
778  switch (fieldnum[1])
779  {
780  case 0:
781  return PARM_STRING;
782  case 1:
783  return PARM_STRING;
784  case 2:
785  return PARM_STRING;
786 
787  }
788  return PARM_UNSUPPORTED;
789 
790  }
791  return PARM_UNSUPPORTED;
792  }
793 
794  // Boiler plate to load individual types.
795  static void loadData(UT_IStream &is, int64 &v)
796  { is.bread(&v, 1); }
797  static void loadData(UT_IStream &is, bool &v)
798  { int64 iv; is.bread(&iv, 1); v = iv; }
799  static void loadData(UT_IStream &is, fpreal64 &v)
800  { is.bread<fpreal64>(&v, 1); }
801  static void loadData(UT_IStream &is, UT_Vector2D &v)
802  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
803  static void loadData(UT_IStream &is, UT_Vector3D &v)
804  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
805  is.bread<fpreal64>(&v.z(), 1); }
806  static void loadData(UT_IStream &is, UT_Vector4D &v)
807  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
808  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
809  static void loadData(UT_IStream &is, UT_Matrix2D &v)
810  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
811  static void loadData(UT_IStream &is, UT_Matrix3D &v)
812  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
813  static void loadData(UT_IStream &is, UT_Matrix4D &v)
814  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
815  static void loadData(UT_IStream &is, UT_Vector2I &v)
816  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
817  static void loadData(UT_IStream &is, UT_Vector3I &v)
818  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
819  is.bread<int64>(&v.z(), 1); }
820  static void loadData(UT_IStream &is, UT_Vector4I &v)
821  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
822  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
824  { is.bread(v); }
826  { UT_StringHolder rampdata;
827  loadData(is, rampdata);
828  if (rampdata.isstring())
829  {
830  v.reset(new UT_Ramp());
831  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
832  v->load(istr);
833  }
834  else v.reset();
835  }
838  loadData(is, data);
839  if (data.isstring())
840  {
841  // Find the data type.
842  const char *colon = UT_StringWrap(data).findChar(':');
843  if (colon)
844  {
845  int typelen = colon - data.buffer();
847  type.strncpy(data.buffer(), typelen);
848  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
849 
850  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
851  }
852  }
853  else v.reset();
854  }
855 
856  static void saveData(std::ostream &os, int64 v)
857  { UTwrite(os, &v); }
858  static void saveData(std::ostream &os, bool v)
859  { int64 iv = v; UTwrite(os, &iv); }
860  static void saveData(std::ostream &os, fpreal64 v)
861  { UTwrite<fpreal64>(os, &v); }
862  static void saveData(std::ostream &os, UT_Vector2D v)
863  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
864  static void saveData(std::ostream &os, UT_Vector3D v)
865  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
866  UTwrite<fpreal64>(os, &v.z()); }
867  static void saveData(std::ostream &os, UT_Vector4D v)
868  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
869  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
870  static void saveData(std::ostream &os, UT_Matrix2D v)
872  static void saveData(std::ostream &os, UT_Matrix3D v)
874  static void saveData(std::ostream &os, UT_Matrix4D v)
876  static void saveData(std::ostream &os, UT_StringHolder s)
877  { UT_StringWrap(s).saveBinary(os); }
878  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
880  UT_OStringStream ostr;
881  if (s) s->save(ostr);
882  result = ostr.str();
883  saveData(os, result);
884  }
885  static void saveData(std::ostream &os, PRM_DataItemHandle s)
887  UT_OStringStream ostr;
888  if (s)
889  {
890  ostr << s->getDataTypeToken();
891  ostr << ":";
892  s->saveBinary(ostr);
893  }
894  result = ostr.str();
895  saveData(os, result);
896  }
897 
898 
899  void save(std::ostream &os) const
900  {
901  int32 v = version();
902  UTwrite(os, &v);
903  {
904  int64 length = myVopcount.entries();
905  UTwrite(os, &length);
906  for (exint i = 0; i < length; i++)
907  {
908  auto && _curentry = myVopcount(i);
909  (void) _curentry;
910  saveData(os, _curentry.vgroup);
911  saveData(os, _curentry.vpackedname);
912  saveData(os, _curentry.viewportlod);
913  saveData(os, _curentry.visible3d);
914  saveData(os, _curentry.visible2d);
915 
916  }
917  }
918  {
919  int64 length = myMopcount.entries();
920  UTwrite(os, &length);
921  for (exint i = 0; i < length; i++)
922  {
923  auto && _curentry = myMopcount(i);
924  (void) _curentry;
925  saveData(os, _curentry.mgroup);
926  saveData(os, _curentry.mpackedname);
927  saveData(os, _curentry.shop_materialpath);
928 
929  }
930  }
931  {
932  int64 length = myLopcount.entries();
933  UTwrite(os, &length);
934  for (exint i = 0; i < length; i++)
935  {
936  auto && _curentry = myLopcount(i);
937  (void) _curentry;
938  saveData(os, _curentry.lgroup);
939  saveData(os, _curentry.lpackedname);
940  saveData(os, _curentry.lightcategories);
941 
942  }
943  }
944 
945  }
946 
947  bool load(UT_IStream &is)
948  {
949  int32 v;
950  is.bread(&v, 1);
951  if (version() != v)
952  {
953  // Fail incompatible versions
954  return false;
955  }
956  {
957  int64 length;
958  is.read(&length, 1);
959  myVopcount.setSize(length);
960  for (exint i = 0; i < length; i++)
961  {
962  auto && _curentry = myVopcount(i);
963  (void) _curentry;
964  loadData(is, _curentry.vgroup);
965  loadData(is, _curentry.vpackedname);
966  loadData(is, _curentry.viewportlod);
967  loadData(is, _curentry.visible3d);
968  loadData(is, _curentry.visible2d);
969 
970  }
971  }
972  {
973  int64 length;
974  is.read(&length, 1);
975  myMopcount.setSize(length);
976  for (exint i = 0; i < length; i++)
977  {
978  auto && _curentry = myMopcount(i);
979  (void) _curentry;
980  loadData(is, _curentry.mgroup);
981  loadData(is, _curentry.mpackedname);
982  loadData(is, _curentry.shop_materialpath);
983 
984  }
985  }
986  {
987  int64 length;
988  is.read(&length, 1);
989  myLopcount.setSize(length);
990  for (exint i = 0; i < length; i++)
991  {
992  auto && _curentry = myLopcount(i);
993  (void) _curentry;
994  loadData(is, _curentry.lgroup);
995  loadData(is, _curentry.lpackedname);
996  loadData(is, _curentry.lightcategories);
997 
998  }
999  }
1000 
1001  return true;
1002  }
1003 
1004  const UT_Array<Vopcount> &getVopcount() const { return myVopcount; }
1005 void setVopcount(const UT_Array<Vopcount> &val) { myVopcount = val; }
1006  exint opVopcount(const SOP_NodeVerb::CookParms &cookparms) const
1007  {
1008  SOP_Node *thissop = cookparms.getNode();
1009  if (!thissop) return getVopcount().entries();
1010  exint result;
1011  OP_Utils::evalOpParm(result, thissop, "vopcount", cookparms.getCookTime(), 0);
1012  return result;
1013  }
1015  { return opinstVopcount_vgroup(cookparms, &_idx); }
1016  UT_StringHolder opinstVopcount_vgroup(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
1017  {
1018  SOP_Node *thissop = cookparms.getNode();
1019  if (!thissop) return (myVopcount(_idx[0]).vgroup);
1020  int _parmidx[2-1];
1021  _parmidx[1-1] = _idx[1-1] + 0;
1022 
1024  OP_Utils::evalOpParmInst(result, thissop, "vgroup#", _parmidx, cookparms.getCookTime(), 0, 2-1);
1025  return (result);
1026  }
1028  { return opinstVopcount_vpackedname(cookparms, &_idx); }
1029  UT_StringHolder opinstVopcount_vpackedname(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
1030  {
1031  SOP_Node *thissop = cookparms.getNode();
1032  if (!thissop) return (myVopcount(_idx[0]).vpackedname);
1033  int _parmidx[2-1];
1034  _parmidx[1-1] = _idx[1-1] + 0;
1035 
1037  OP_Utils::evalOpParmInst(result, thissop, "vpackedname#", _parmidx, cookparms.getCookTime(), 0, 2-1);
1038  return (result);
1039  }
1040  int64 opVopcount_viewportlod(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
1041  { return opinstVopcount_viewportlod(cookparms, &_idx); }
1042  int64 opinstVopcount_viewportlod(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
1043  {
1044  SOP_Node *thissop = cookparms.getNode();
1045  if (!thissop) return (myVopcount(_idx[0]).viewportlod);
1046  int _parmidx[2-1];
1047  _parmidx[1-1] = _idx[1-1] + 0;
1048 
1049  int64 result;
1050  OP_Utils::evalOpParmInst(result, thissop, "viewportlod#", _parmidx, cookparms.getCookTime(), 0, 2-1);
1051  return (result);
1052  }
1053  int64 opVopcount_visible3d(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
1054  { return opinstVopcount_visible3d(cookparms, &_idx); }
1055  int64 opinstVopcount_visible3d(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
1056  {
1057  SOP_Node *thissop = cookparms.getNode();
1058  if (!thissop) return (myVopcount(_idx[0]).visible3d);
1059  int _parmidx[2-1];
1060  _parmidx[1-1] = _idx[1-1] + 0;
1061 
1062  int64 result;
1063  OP_Utils::evalOpParmInst(result, thissop, "visible3d#", _parmidx, cookparms.getCookTime(), 0, 2-1);
1064  return (result);
1065  }
1066  int64 opVopcount_visible2d(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
1067  { return opinstVopcount_visible2d(cookparms, &_idx); }
1068  int64 opinstVopcount_visible2d(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
1069  {
1070  SOP_Node *thissop = cookparms.getNode();
1071  if (!thissop) return (myVopcount(_idx[0]).visible2d);
1072  int _parmidx[2-1];
1073  _parmidx[1-1] = _idx[1-1] + 0;
1074 
1075  int64 result;
1076  OP_Utils::evalOpParmInst(result, thissop, "visible2d#", _parmidx, cookparms.getCookTime(), 0, 2-1);
1077  return (result);
1078  }
1079 
1080  const UT_Array<Mopcount> &getMopcount() const { return myMopcount; }
1081 void setMopcount(const UT_Array<Mopcount> &val) { myMopcount = val; }
1082  exint opMopcount(const SOP_NodeVerb::CookParms &cookparms) const
1083  {
1084  SOP_Node *thissop = cookparms.getNode();
1085  if (!thissop) return getMopcount().entries();
1086  exint result;
1087  OP_Utils::evalOpParm(result, thissop, "mopcount", cookparms.getCookTime(), 0);
1088  return result;
1089  }
1091  { return opinstMopcount_mgroup(cookparms, &_idx); }
1092  UT_StringHolder opinstMopcount_mgroup(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
1093  {
1094  SOP_Node *thissop = cookparms.getNode();
1095  if (!thissop) return (myMopcount(_idx[0]).mgroup);
1096  int _parmidx[2-1];
1097  _parmidx[1-1] = _idx[1-1] + 0;
1098 
1100  OP_Utils::evalOpParmInst(result, thissop, "mgroup#", _parmidx, cookparms.getCookTime(), 0, 2-1);
1101  return (result);
1102  }
1104  { return opinstMopcount_mpackedname(cookparms, &_idx); }
1105  UT_StringHolder opinstMopcount_mpackedname(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
1106  {
1107  SOP_Node *thissop = cookparms.getNode();
1108  if (!thissop) return (myMopcount(_idx[0]).mpackedname);
1109  int _parmidx[2-1];
1110  _parmidx[1-1] = _idx[1-1] + 0;
1111 
1113  OP_Utils::evalOpParmInst(result, thissop, "mpackedname#", _parmidx, cookparms.getCookTime(), 0, 2-1);
1114  return (result);
1115  }
1117  { return opinstMopcount_shop_materialpath(cookparms, &_idx); }
1119  {
1120  SOP_Node *thissop = cookparms.getNode();
1121  if (!thissop) return (myMopcount(_idx[0]).shop_materialpath);
1122  int _parmidx[2-1];
1123  _parmidx[1-1] = _idx[1-1] + 0;
1124 
1126  OP_Utils::evalOpParmInst(result, thissop, "shop_materialpath#", _parmidx, cookparms.getCookTime(), 0, 2-1);
1127  return (result);
1128  }
1129 
1130  const UT_Array<Lopcount> &getLopcount() const { return myLopcount; }
1131 void setLopcount(const UT_Array<Lopcount> &val) { myLopcount = val; }
1132  exint opLopcount(const SOP_NodeVerb::CookParms &cookparms) const
1133  {
1134  SOP_Node *thissop = cookparms.getNode();
1135  if (!thissop) return getLopcount().entries();
1136  exint result;
1137  OP_Utils::evalOpParm(result, thissop, "lopcount", cookparms.getCookTime(), 0);
1138  return result;
1139  }
1141  { return opinstLopcount_lgroup(cookparms, &_idx); }
1142  UT_StringHolder opinstLopcount_lgroup(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
1143  {
1144  SOP_Node *thissop = cookparms.getNode();
1145  if (!thissop) return (myLopcount(_idx[0]).lgroup);
1146  int _parmidx[2-1];
1147  _parmidx[1-1] = _idx[1-1] + 0;
1148 
1150  OP_Utils::evalOpParmInst(result, thissop, "lgroup#", _parmidx, cookparms.getCookTime(), 0, 2-1);
1151  return (result);
1152  }
1154  { return opinstLopcount_lpackedname(cookparms, &_idx); }
1155  UT_StringHolder opinstLopcount_lpackedname(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
1156  {
1157  SOP_Node *thissop = cookparms.getNode();
1158  if (!thissop) return (myLopcount(_idx[0]).lpackedname);
1159  int _parmidx[2-1];
1160  _parmidx[1-1] = _idx[1-1] + 0;
1161 
1163  OP_Utils::evalOpParmInst(result, thissop, "lpackedname#", _parmidx, cookparms.getCookTime(), 0, 2-1);
1164  return (result);
1165  }
1167  { return opinstLopcount_lightcategories(cookparms, &_idx); }
1169  {
1170  SOP_Node *thissop = cookparms.getNode();
1171  if (!thissop) return (myLopcount(_idx[0]).lightcategories);
1172  int _parmidx[2-1];
1173  _parmidx[1-1] = _idx[1-1] + 0;
1174 
1176  OP_Utils::evalOpParmInst(result, thissop, "lightcategories#", _parmidx, cookparms.getCookTime(), 0, 2-1);
1177  return (result);
1178  }
1179 
1180 
1181 private:
1182  UT_Array<Vopcount> myVopcount;
1183  UT_Array<Mopcount> myMopcount;
1184  UT_Array<Lopcount> myLopcount;
1185 
1186 };
bool operator==(const Lopcount &src) const
type
Definition: core.h:556
static void saveData(std::ostream &os, UT_Vector4D v)
static void saveData(std::ostream &os, UT_StringHolder s)
void loadFromOpSubclass(const LoadParms &loadparms) override
static void loadData(UT_IStream &is, UT_Vector2D &v)
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glcorearb.h:2540
int64 opinstVopcount_viewportlod(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void saveData(std::ostream &os, int64 v)
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:347
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
static void saveData(std::ostream &os, fpreal64 v)
bool operator==(const Mopcount &src) const
void setVopcount(const UT_Array< Vopcount > &val)
static void loadData(UT_IStream &is, int64 &v)
UT_StringHolder opinstMopcount_mgroup(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void
Definition: png.h:1083
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
exint bread(int32 *buffer, exint asize=1)
GLboolean * data
Definition: glcorearb.h:131
UT_StringHolder opMopcount_shop_materialpath(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector4.h:493
const GLdouble * v
Definition: glcorearb.h:837
exint opMopcount(const SOP_NodeVerb::CookParms &cookparms) const
fpreal getTime() const
Definition: OP_Context.h:63
UT_StringHolder opinstLopcount_lgroup(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
UT_StringHolder opLopcount_lgroup(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void saveData(std::ostream &os, UT_Vector2D v)
exint opLopcount(const SOP_NodeVerb::CookParms &cookparms) const
GLsizei const GLfloat * value
Definition: glcorearb.h:824
UT_StringHolder createString(const UT_Array< Vopcount > &list) const
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
UT_String makeQuotedString(char delimiter='\'', bool escape_nonprinting=false) const
UT_StringHolder opMopcount_mpackedname(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
const OP_Context & context() const
Definition: OP_NodeParms.h:97
static void loadData(UT_IStream &is, UT_Matrix2D &v)
bool operator!=(const Lopcount &src) const
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector3.h:667
int64 exint
Definition: SYS_Types.h:125
UT_StringHolder opLopcount_lpackedname(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
SYS_FORCE_INLINE const char * buffer() const
GLdouble s
Definition: glad.h:3009
GLuint GLsizei GLsizei * length
Definition: glcorearb.h:795
static void loadData(UT_IStream &is, UT_Matrix4D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
An output stream object that owns its own string buffer storage.
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
**But if you need a result
Definition: thread.h:622
UT_StringHolder opLopcount_lightcategories(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
exint nodeIdx() const
Definition: OP_NodeParms.h:95
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
UT_StringHolder opMopcount_mgroup(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
static void loadData(UT_IStream &is, UT_Vector4D &v)
UT_StringHolder createString(const UT_Array< Lopcount > &list) const
static void loadData(UT_IStream &is, UT_Vector3I &v)
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:491
const char * getNestParmName(TempIndex fieldnum) const override
const UT_Array< Lopcount > & getLopcount() const
int64 opVopcount_visible2d(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
UT_StringHolder opVopcount_vpackedname(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
GLuint GLsizei const GLuint const GLintptr * offsets
Definition: glcorearb.h:2621
UT_StringHolder opinstVopcount_vgroup(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
double fpreal64
Definition: SYS_Types.h:201
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: APEX_Include.h:55
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector2.h:423
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
const UT_Array< Vopcount > & getVopcount() const
bool operator!=(const Vopcount &src) const
UT_StringHolder opinstVopcount_vpackedname(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
static void saveData(std::ostream &os, UT_Matrix4D v)
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
exint length() const
static void loadData(UT_IStream &is, bool &v)
UT_StringHolder opinstLopcount_lpackedname(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:36
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector4.h:495
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void setLopcount(const UT_Array< Lopcount > &val)
static void saveData(std::ostream &os, UT_Vector3D v)
static void loadData(UT_IStream &is, UT_Vector4I &v)
exint read(bool *array, exint sz=1)
Definition: UT_IStream.h:276
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:94
static void loadData(UT_IStream &is, UT_StringHolder &v)
#define SYS_FORCE_INLINE
Definition: SYS_Inline.h:45
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
void copyFrom(const OP_NodeParms *src) override
UT_StringHolder opinstMopcount_mpackedname(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
UT_StringHolder opinstLopcount_lightcategories(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
virtual void evalOpParmInst(int64 &v, NodeIdx node, const char *parmname, const int *inst, const int *offsets, fpreal time, DEP_MicroNode *depnode, int nestlevel=1) const =0
long long int64
Definition: SYS_Types.h:116
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
static void loadData(UT_IStream &is, UT_Matrix3D &v)
const UT_Array< Mopcount > & getMopcount() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
bool operator!=(const Mopcount &src) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
UT_StringHolder opinstMopcount_shop_materialpath(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
static void saveData(std::ostream &os, PRM_DataItemHandle s)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
bool operator!=(const SOP_PackedEditParms &src) const
SYS_FORCE_INLINE void strcat(const char *src)
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:303
void setMopcount(const UT_Array< Mopcount > &val)
GT_API const UT_StringHolder version
exint entries() const
Alias of size(). size() is preferred.
Definition: UT_Array.h:655
static void loadData(UT_IStream &is, UT_Vector3D &v)
static void loadData(UT_IStream &is, UT_Vector2I &v)
int64 opinstVopcount_visible2d(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
bool operator==(const Vopcount &src) const
static void saveData(std::ostream &os, UT_Matrix3D v)
UT_StringHolder opVopcount_vgroup(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
int int appendSprintf(const char *fmt,...) SYS_PRINTF_CHECK_ATTRIBUTE(2
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
fpreal64 fpreal
Definition: SYS_Types.h:278
exint getNestNumParms(TempIndex idx) const override
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:99
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
Definition: UT_Ramp.h:96
bool isParmColorRamp(exint idx) const override
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:497
SYS_FORCE_INLINE void append(char character)
GLuint GLfloat * val
Definition: glcorearb.h:1608
virtual UT_StringHolder baseGetSignature() const
Definition: OP_NodeParms.h:294
#define SOP_API
Definition: SOP_API.h:10
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
UT_StringHolder createString(const UT_Array< Mopcount > &list) const
bool operator==(const SOP_PackedEditParms &src) const
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:372
ParmType getNestParmType(TempIndex fieldnum) const override
const char * findChar(int c) const
Definition: UT_String.h:1401
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:156
exint opVopcount(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
GLboolean r
Definition: glcorearb.h:1222
int64 opinstVopcount_visible3d(const SOP_NodeVerb::CookParms &cookparms, const int *_idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
static void loadData(UT_IStream &is, fpreal64 &v)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:665
bool load(UT_IStream &is)
static void saveData(std::ostream &os, bool v)
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
SYS_FORCE_INLINE UT_StringHolder getToken(Viewportlod enum_value)
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector2.h:425
int64 opVopcount_visible3d(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
SYS_FORCE_INLINE bool isstring() const
static void saveData(std::ostream &os, UT_Matrix2D v)
int64 opVopcount_viewportlod(const SOP_NodeVerb::CookParms &cookparms, int _idx) const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
GA_API const UT_StringHolder shop_materialpath
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
void save(std::ostream &os) const
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:663